繁体   English   中英

有关node.js应用程序启动的问题

[英]questions about node.js application launch

我收到了一个node.js应用程序,用于放入我负责的生产环境(我是unix管理员)。 主文件(启动应用程序如下):

var module1 = (require('./module1.js')), ls;
var module2 = (require('./module2.js')), rd;
var module3 = (require('./module3.js')), rs;
var module4 = (require('./module4.js')), rd;
var module5 = (require('./module5.js')), rd;
var module6 = (require('./module6.js')), rd;
var module7 = (require('./module7.js')), rd;

为了好奇(我不是一个javascript / node.js程序员)我试图在互联网上查找语法。 我发现最接近的是var module = require('./module.js'); 但没有任何附带括号和rd / rs / ls后缀......

将'require ...'放在括号内并添加后缀的目的是什么:rd,rs,ls?

几个澄清:1。我问了一个程​​序员,他告诉我每个模块启动一个不同的Web应用程序(使用Express模块​​)。 2.编写此部分的原始程序员不再与公司合作,无法访问,也没有人想触摸应用程序的这一部分:-(

理解语法

在JavaScript中使用var声明变量时,您可以使用逗号( , )一次声明多个变量。

例如:

var v1 = "example", v2 = "example2", v3;

v1v2都存在且具有值。 v3存在但其值将不确定。

在你的情况下应用它

在您的情况下,您有:

var module1 = (require('./module1.js')), ls;

我不知道require('./module1.js')返回什么,但为了简单起见,假设它包含module.exports = "abc" ,这意味着require('./module1.js')将返回"abc"

这意味着这一行基本上是:

var module1 = "abc", ls;

module1的值为"abc"ls值为undefined

现在你有一个重复后缀的事实确实很奇怪,似乎没有任何实际意义。 它肯定不遵循包含模块的典型模式。 它们只是变量,其值为undefined (从提供的代码中显示)。 也许它们在代码库的其他地方使用过。

编辑

我问其中一位程序员,他告诉我每个模块启动一个不同的Web应用程序(使用Express模块​​)

默认情况下,在module.exports ,每个模块都有一个module.exports对象,它只是一个空对象{} 如果在那些需要的模块内,它不会重新分配或添加到module.exports ,那么require将只返回一个空对象。

但是,模块仍然执行,因此模式(有些可能称之为反模式)是副作用模块。 所需模块除了导致副作用之外不提供API或目的,在这种情况下启动Express应用程序,并且可能将侦听连接绑定到不同的端口。

作者可以写

require('./module1.js');
require('./module2.js');

达到同样的效果。 当然,如果没有var关键字,它们不能同时声明lsrsrd ,这可能是作者写作方式的原因。 鉴于提供的代码,仍然不清楚这些变量的意义或目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM