簡體   English   中英

如何使用要求內部全局和局部功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM