Ich habe Schwierigkeiten, eine ausführbare Verteilung meines Nodejs-Projekts zu erstellen. Ich möchte eine ausführbare Datei ähnlich wie wir mit ausführbaren jar mit Tomcat Embbeded senden. Ichwie Node-Compiler verwenden, "ERROR: versuchen, package.json Variablen zu verwenden, aber nicht Setup dafür"
lesenNode Compiler is a command-line utility that compiles your Node.js application into a single executable file.
in https://www.npmjs.com/package/node-compile
Nachdem es npm werfen installiert, habe ich versucht:
nodejs my-project-nodejs # node-compiler server.js
....> ERROR: trying to use package.json variables, but not setup to do so!
so, meine gerade Frage ist: was ich in meinem package.json bin fehlt?
Plus, dass ich MongoDb verwende. Ich glaube, dass ich kein Problem haben werde, wenn mein Kunde herunterlädt und nicht MongoDb das ausführbare nodejs-Projekt ausführt. Ich comenting es, weil ich in derselben URL lesen:
but by using default nexe, we could not easily produce a working binary which with with monogoose + express.js
Soweit ich verstanden, da ich zu verwenden, versuche Knoten kompilieren anstelle von reinem nexe Ich will nicht Probleme mit MongoDB Gesicht.
server.js
// Load required packages
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var ejs = require('ejs');
var session = require('express-session');
var passport = require('passport');
var userController = require('./controllers/user');
var authController = require('./controllers/auth');
var oauth2Controller = require('./controllers/oauth2');
var clientController = require('./controllers/client');
var cartaoController = require('./controllers/cartao');
mongoose.connect('mongodb://localhost:27017/my-db');
// Create our Express application
var app = express();
// Set view engine to ejs
app.set('view engine', 'ejs');
// Use the body-parser package in our application
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
// Use express session support since OAuth2orize requires it
app.use(session({
secret: 'Super Secret Session Key',
saveUninitialized: true,
resave: true
}));
// Use the passport package in our application
app.use(passport.initialize());
// Create our Express router
var router = express.Router();
router.route('/cartoes')
.post(cartaoController.postCartoes);
// .post(authController.isAuthenticated, cartaoController.postCartoes);
router.route('/users')
.post(userController.postUsers)
.get(authController.isAuthenticated, userController.getUsers);
router.route('/clients')
.post(authController.isAuthenticated, clientController.postClients)
.get(authController.isAuthenticated, clientController.getClients);
router.route('/oauth2/authorize')
.get(authController.isAuthenticated, oauth2Controller.authorization)
.post(authController.isAuthenticated, oauth2Controller.decision);
router.route('/oauth2/token')
.post(authController.isClientAuthenticated, oauth2Controller.token);
app.use('/api', router);
app.listen(3000);
package.json
{
"name": "my-app-dmz",
"main": "server.js",
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "^1.0.2",
"ejs": "^1.0.0",
"express": "^4.1.1",
"express-session": "^1.6.1",
"mongoose": "^3.8.8",
"node-rest-client": "^2.5.0",
"oauth2orize": "^1.0.1",
"passport": "^0.2.0",
"passport-http": "^0.2.2",
"passport-http-bearer": "^1.0.1",
"reqclient": "^2.1.0"
}
}
eines der Modelle
// Load required packages
var mongoose = require('mongoose');
// Define our client schema
var ClientSchema = new mongoose.Schema({
name: { type: String, unique: true, required: true },
id: { type: String, required: true },
secret: { type: String, required: true },
userId: { type: String, required: true }
});
// Export the Mongoose model
module.exports = mongoose.model('Client', ClientSchema);
ich noch sorgfältig auf diese Frage zu beantworten suchen. – DemeCarvO