Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个对象声明在node.js中工作,以及如何声明静态变量?_Javascript_Node.js - Fatal编程技术网

Javascript 为什么这个对象声明在node.js中工作,以及如何声明静态变量?

Javascript 为什么这个对象声明在node.js中工作,以及如何声明静态变量?,javascript,node.js,Javascript,Node.js,我看到了这个代码: var myNet = require ("net"); 在某些功能上: function foo (x,y) { var myNewNet = new myNet(); myNewNet.createServer(x,y); } 为什么上面的代码会创建一个新对象?背后的机制是什么 还有一个问题,如何在node.js中创建静态变量,例如必须唯一的id号 我为静态变量提供了此选项: var id =0; 把它放在全局范围内,可以吗?requi

我看到了这个代码:

var myNet = require ("net");
在某些功能上:

function foo (x,y) {
    var myNewNet = new myNet();      
    myNewNet.createServer(x,y);

}
为什么上面的代码会创建一个新对象?背后的机制是什么

还有一个问题,如何在node.js中创建静态变量,例如必须唯一的id号

我为静态变量提供了此选项:

var id =0;

把它放在全局范围内,可以吗?

require语句基本上就像一个导入;它接受一个外部库,并使其在代码中可用

如果查看外部模块,您会注意到它只是普通的node.js代码。它有
EXPORT
语句。当你需要一些东西时,这些陈述是可以得到的。退房

node.js中有一个
GLOBAL
关键字,您可以使用它使某些内容成为全局的

GLOBAL.IP\u ADDRESS=“…”

正如@Raynos所说,这样做通常不是一个好主意,所以另一个选项是从模块导出一个常量,这样您就可以创建一个模块并执行以下操作

exports.STATIC_CONSTANT=”“

一旦你导入了模块,你就可以

var mod = require('mymodule');
mod.STATIC_CONSTANT;
编辑该行,以回答您的评论

var myNet=require(“net”)

使
myNet
成为
net
模块导出的内容。它必须导出一个函数,所以

var newNet=newmynet()

创建网络对象的新实例。从那里

myNewNet.createServer()


只是在刚刚创建的对象上调用一个方法。

谢谢,但是为什么语法是:var required=require(“someModule”);var newVar=newrequired();是好的,为什么它会起作用?地球人是邪恶的。不要在节点中使用全局变量