Javascript Nodejs-库的全局或本地初始化
我有点困惑,以下哪项是更好的练习,为什么?在第一种情况下,我们全局初始化库,在第二种情况下,它在函数中完成 代码1Javascript Nodejs-库的全局或本地初始化,javascript,node.js,Javascript,Node.js,我有点困惑,以下哪项是更好的练习,为什么?在第一种情况下,我们全局初始化库,在第二种情况下,它在函数中完成 代码1 var twilio_client = require('twilio')( process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN ); function_sendSMS(from, to){ twilio_client.messages.create({ from: from,
var twilio_client = require('twilio')(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
function_sendSMS(from, to){
twilio_client.messages.create({
from: from,
to: to,
body: "You just sent an SMS from Node.js using Twilio!"
}, function(err, message) {
if(err) {
console.error(err.message);
}
});
}
代码2
function_sendSMS(from, to){
var twilio_client = require('twilio')(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
twilio_client.messages.create({
from: from,
to: to,
body: "You just sent an SMS from Node.js using Twilio!"
}, function(err, message) {
if(err) {
console.error(err.message);
}
});
}
从风格上来说,这确实是一个意见问题
但是,从性能的角度来看,第一个代码示例将更有效,因为在父范围中引用变量比通过任何节点的模块机制都要便宜,即使在第一个
require()
之后缓存模块也是如此。我还应该指出,在节点v8.x中,加载缓存模块时,require()
性能有了显著提高(非缓存模块的require()
性能也略有提高)。您可以在本文中看到差异。是第一种情况,模块将始终被加载,因此它不会消耗更多内存/资源吗?它不会使用任何额外内存,因为它是对节点模块缓存中已存在的同一对象的引用。