私のnodejsプロジェクトの実行可能な配布を作成しようとしています。 Tomcatを埋め込んだ実行可能なjarファイルと同様の実行可能ファイルを送信したいと思います。それは、NPMを投げるインストールした後、私はhttps://www.npmjs.com/package/node-compileノードコンパイラの使用方法「ERROR:package.json変数を使用しようとしましたが、セットアップはしません」
に
Node Compiler is a command-line utility that compiles your Node.js application into a single executable file.
を読んで、私が試した:
nodejs my-project-nodejs # node-compiler server.js
....> ERROR: trying to use package.json variables, but not setup to do so!
ので、私のストレート質問は:私は私のpackage.jsonで行方不明です何?
さらに、私はMongoDbを使用しています。もし私のcostumerをダウンロードして、実行可能なnodejsプロジェクトをMongoDbが実行していなければ、私は問題に直面しないだろうと私は信じています。私が使用しようとしていますので、
but by using default nexe, we could not easily produce a working binary which with with monogoose + express.js
は、私の知る限り理解されるように、私はMongoDBのに問題に直面することはありません代わりに、純粋なnexeのノードをコンパイル:私は同じURLで読むので、私はそれをcomentingています。
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);
nexeで私のアプリをバンドルしようとしたときのモデルの
{
"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"
}
}
// 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);
を、私はまだこの質問への答えを慎重に探しています:nexeドキュメントが示唆するよう
これを解決する
は、私は単に、私のpackage.jsonファイルで"nexe"
エントリを追加する必要がありました。 – DemeCarvO