Javascript Nodejs-库的全局或本地初始化

Javascript 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,

我有点困惑,以下哪项是更好的练习,为什么?在第一种情况下,我们全局初始化库,在第二种情况下,它在函数中完成

代码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,
     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()
性能也略有提高)。您可以在本文中看到差异。

是第一种情况,模块将始终被加载,因此它不会消耗更多内存/资源吗?它不会使用任何额外内存,因为它是对节点模块缓存中已存在的同一对象的引用。