require()
を使用してExpressJSでパッケージをインポートする際に混乱があります。 私はいくつかのパッケージを含めていました。 nodemailer
、bcryptjs
をローカルに呼び出します。つまり、関数内にrequire
を呼び出します。だから、私はrequire
を1回のルートファイルに何回も書き込まなければならなかった。NodeJS(ExpressJS)では 'require()'をローカルまたはグローバルに使用する必要がありますか?
require
ステートメントは、そのルートファイルの先頭またはapp.js
ファイルのいずれかに1回だけ入力するようにしてください。私は少し混乱している。誰かがrequire
パッケージをmiddlwares内に収める最良の方法を提案してもらえますか?
例コード: 私はミドルウェア機能で電子メールを送る必要があります。
var nodemailer = require("nodemailer");
var mailTransport = nodemailer.createTransport();
var mailOptions = {
from: constants.mail_sender_email,
to: constants.user_won_recipient_mails,
subject: templateContext.subject,
text: subject + ".\n",
html: results.html
};
毎回私は、私は再びrequire('nodemailer')
文を使用し、電子メールを送信する必要があります。下記のように私は、このためのコードを持っています。そのルートファイル(つまり、index.js
またはおそらくapp.js
)に1回必要ですか? しかし、非常に頻繁には使用されないrequire('ObjectID')
のようなケースがあります。そのようなパッケージもグローバルに要求されるのは良いでしょうか?
ありがとうございました。
あなたが同僚かもしれませんが、あなたのコードを表示していない場合、私たちはshureを教えることはできません。 – BetaRide
[アプリケーションの初期化後にモジュールを必要としない](https://github.com/alanjames1987/Node.js-Best-Practices#never-require-modules-after-app-initialization) – str
モジュールはキャッシュされているので、何度も何かを含めることでパフォーマンスの低下を招くことがあります。 –