[英]How to use require inside global and local function
我正在使用節點JS復制,並使用模塊創建了新的js文件,在此模塊中,我僅導出一個函數,在此模塊中,我說我還有兩個其他函數僅供內部使用 ,不應暴露在外部,每個函數都應使用不同的需求模塊如下:
module.exports = function (app, express) {
var bodyParser = require('body-parser'),
url = require('url'),
http = require('http');
.....
};
function prRequest(req, res) {
httpProxy = require('http-proxy');
....
}
function postRequest(req, res) {
url = require('url');
....
}
我的問題是從最佳實踐中我應該將需求放到哪里(對於URL http等)
1.在每個需要的功能內部-在我的情況下是內部還是外部
2.全局每個功能可以使用的文件?
3.如果兩個都不行,我應該在兩個函數中使用的要求URL放在哪里?最好同時放在兩個函數中還是全局中?
每次調用函數時,模塊都應按調用要求暴露在函數外部,這會增加額外的開銷。 相比:
const url = require('url');
const start = Date.now();
for (let i = 0; i < 10000000; i++) {
url.parse('http://stockexchange.com');
}
console.log(Date.now() - start);
至:
const start = Date.now();
for (let i = 0; i < 10000000; i++) {
require('url').parse('http://stackexchange.com');
}
console.log(Date.now() - start);
在我的機器上,前者需要95.641秒才能完成執行,而后者則需要125.094秒。 即使您導出使用所需模塊的函數,導入后它仍然可以訪問其文件中的其他變量。 因此,我將在需要它們的每個文件中本地聲明模塊,而不是全局聲明。
編輯:這意味着您想改為執行此操作:
var bodyParser = require('body-parser'),
url = require('url'),
http = require('http');
module.exports = function (app, express) {
....
};
var httpProxy = require('http-proxy');
function prRequest(req, res) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.