我应该总是将模块调用到var中,还是在节点中立即执行
Should i always call a module into a var or execute immediately in node
所以,我来自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
我只是觉得它看起来更整洁。
相关文章:
- 我应该总是将模块调用到var中,还是在节点中立即执行
- 节点命令不执行星号路径
- 收到错误:无法在“节点”上执行“appendChild”:参数 1 的类型不是“节点”
- 如何在节点的沙盒环境中执行用户提交的javascript代码
- 是节点.js一次只执行一个上下文
- Meteor:排队任务中出现异常:错误:无法执行'removeChild'在'节点':要
- 为什么不't克隆节点<脚本>执行标记
- 是否有一种方法可以在节点中同步执行多个JavaScript文件
- 节点可执行文件中返回了错误的pid
- 1.js:23未捕获类型错误:执行'失败;appendChild'在'节点':参数1不是
- 全局安装的NodeJS npm模块不执行节点的主/bin JavaScript文件
- 未捕获的类型错误:无法执行'观察'在'突变观察者':参数1不是'节点'
- 无法在“节点”上执行“appendChild”:参数 1 的类型不是“节点”
- 管理异步性并在节点中执行多个 MySQL 查询
- 同步 JavaScript 调用节点 js- 执行 GET in for 循环
- 节点 JS 根据事件到达恢复执行
- 如何在 Windows 中调试/逐步执行/监视我的节点.js
- 执行节点.JS基于HTML选择选项的查询
- Firebase - 在对多个节点执行更新/扇出时设置优先级
- 循环遍历无序列表并对每个节点执行操作Javascript