0

異なるルート ファイルで 1 つの同じ Express モジュールを使用する場合、 app.jsでグローバルに作成するのではなく、すべてのルート ファイルに含めるのが適切な方法であると言われました。

今、私はapp.useそれらすべてを複製する必要があるのか​​ 、それともapp.jsで一度だけ行うべきなのか疑問に思っています。

app.js でそれを行う場合は、これらすべてのモジュールを app.js に含めて、さらに多くのコードを複製する必要があります。私は正しいですか?

もう少しわかりやすくするために、次の例を追加します。

/* routes/users.js
-----------------------------------------------------*/
var express = require('express');
var app = express();

var http = require('http')
var server = http.Server(app);
var io = require('socket.io')(server);
var path = require('path');

var swig = require('swig');
var request = require('request');

//for ZMQ
var cluster = require('cluster');
var zmq = require('zmq_rep');

//for FORMS
var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use( bodyParser.urlencoded() ); // to support URL-encoded bodies

//for sessions
var session = require('express-session')
app.use(session({
    secret: '4658fsfdlh65/;-3De',
    resave: true,
    saveUninitialized: true
}));

//for CSURF security
var csrf = require('csurf');
app.use(csrf());

//for security
var helmet = require('helmet');

app.use(helmet());

私が理解したのは、次のインクルードを使用する必要があるすべてのルートで複製し、これらのファイルの初期コンテンツを次のようにする必要があるということです。

var express = require('express');
var app = express();

var http = require('http')
var server = http.Server(app);
var io = require('socket.io')(server);
var path = require('path');

var swig = require('swig');
var request = require('request');

//for ZMQ
var cluster = require('cluster');
var zmq = require('zmq_rep');

//for FORMS
var bodyParser = require('body-parser');

//for sessions
var session = require('express-session')

//for CSURF security
var csrf = require('csurf');

//for security
var helmet = require('helmet');

app.useそれではどうですか?

4

1 に答える 1

3

いいえ、複製する必要はなくapp.use、モジュールは他のルート ファイルに含まれています。app.js でのみ実行できます。
ルートファイルに使用したいモジュールを含めるだけです。

例えば

var bodyParser = require('body-parser');
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use( bodyParser.urlencoded() ); // to support URL-encoded bodies

これはアプリケーションで 1 回だけ実行する必要があり、ルート ファイルで繰り返す必要はありません。
あなたが提供したリンクではrequest、そのファイルでモジュールを使用したいので、モジュールを含める必要がありました。

コードの編成をよく理解するために、node-express アプリのサンプルを確認することをお勧めします。例: https://github.com/madhums/node-express-mongoose-demo/

于 2014-09-26T11:36:05.557 に答える