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

时间:2015-03-26 21:27:00

标签: javascript node.js

所以,我来自一个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,或者每次需要时都需要emailer模块..我不知道有什么区别..

NooB我知道,但我无法在谷歌找到一个可靠的答案。

提前致谢, 约翰

1 个答案:

答案 0 :(得分:0)

不,将它存储在变量中没有任何好处,除非您不止一次使用该模块。

如果我正在编写一个非常短的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

我认为它看起来更整洁。