NodeJs需要一个文件

我正在使用NodeJS。 我们在浏览器中可以在节点中需要javascript文件吗? 因为当我使用require()方法时,它会调用一个javascript文件,因为我无法访问server.js中的全局variables,所以我想这就像是“use strict”。 我需要加载我的模块,并使其成为主文件的延续,因为我的模块依赖于一些全局variables。

编辑:

我有这个server.js文件:

var Settings = require("settings.js"); var Clients = require("clients.js"); var removePack = []; /**HERE RUNS MY WEBSOCKET SERVER**/ ... ... //When a new socket connects: io.on("connection", function(socket){ var socket.id = Math.random(); var client = Clients.create(socket.id); }); 

这里我的clients.js文件:

 exports.create = function(){ self.team = Settings.generateRandomTeam(); /*The problem is here. I can´t access the Settings variable*/ self.maxSpeed = Settings.maxSpeed; ... ... return self; } 

编辑2:

当我使用Settings = require(“settings.js”)时出现以下错误:

TypeError:Settings.generateRandomTeam()不是一个函数。

我的settings.js文件是这样的:

 Settings.generateRandomTeam = function(){ //Some code } module.exports = Settings; 

谢谢!

要从clients.js文件访问Settings对象,只需将其添加到您的clients.js文件中即可:

 const Settings = require("settings.js"); exports.create = function(){ self.team = Settings.generateRandomTeam(); /*The problem is here. I can´t access the Settings variable*/ self.maxSpeed = Settings.maxSpeed; ... ... return self; } 

cachingnode.js中的模块,所以两个require()语句parsing为完全相同的文件path将返回完全相同的caching模块。 所以,由于caching的原因,每次调用require("settings.js") ,实际上都会得到相同的Settings对象。

这是在node.js中共享的关键。 你不会想到加载一些东西,然后试图在任何地方分享。 相反,你考虑让每个模块require()什么(如果可能的话)。 这促进了模块的独立性和可重用性,因为它们往往更独立有用,而不是依赖于已经为其构build的一些全球环境。

当然,还有其他一些方法可以通过将数据推送到模块构造函数中的某个模块来共享数据,或者通过在加载数据时从其他模块中调出模块来提取数据来共享数据。 当某个模块需要被赋予一个特定的事物(比如数据库句柄)时,这可能是必要的。