我应该总是将模块调用到var中,还是在节点中立即执行

Should i always call a module into a var or execute immediately in node

本文关键字:节点 执行 var 模块 调用 我应该      更新时间:2023-09-26

所以,我来自LAMP堆栈,所有这些新的js对我来说都是全新的。

我已经为我的小应用程序编写了一个电子邮件发送模块,执行如下:

var emailer = require( '../../app/emailer.js');
emailer({
    tplName : 'activationEmail',
    tplVariables : {name:'john',activationLink:'bob'},
    sendToEmail: 'john@gmail.com',
    sendToName: 'John',
    fromEmail : 'noReply',
    subject: 'Activation email'
});

现在这一切都很好,但我不确定什么更好(因为我缺少一些基本的nodejs知识),按照上面的方式运行还是按照下面的方式运行:

require( '../../app/emailer.js')({
    tplName : 'activationEmail',
    tplVariables : {name:'john',activationLink:'bob'},
    sendToEmail: 'john@gmail.com',
    sendToName: 'John',
    fromEmail : 'noReply',
    subject: 'Activation email'
});

正如你在这里看到的,这是在触发激活电子邮件,电子邮件模块是从护照模块中调用的。

我的问题是,我应该"要求"模块进入var,然后稍后引用var,还是每次需要时都要求电子邮件模块。我不确定区别是什么。

我知道,但在谷歌上找不到确切的答案。

提前感谢,John

不,除非您将多次使用该模块,否则将其存储在变量中没有任何好处。

如果我正在写一个很短的nodejs项目,并且只需要使用一次单个模块,我通常不会费心将其存储在变量中,我只会做你已经做过的事情。

但是,如果我知道我将重用该模块,我会将其存储起来,这样在重用程序时,每次都不会因为require查找而减慢速度。

此外,如果我也在使用其他模块,我喜欢在文件顶部声明所有内容,甚至是一次性模块。

var fs   = require('fs'),            // will use more than once
    http = require('http'),          // will use more than once
    qr   = require('qr-codes'),      // will use more than once
    ip   = require('ip');            // will only use once

我只是觉得它看起来更整洁。