如何在 server.js 文件中包含包含类定义的文件?
我不想使用 module.exports 因为我也想在我的客户端 javascript 代码中使用这个文件。
谢谢!
如果您希望模块的内容在文件范围之外可用,则必须使用module.exports
. 使文件也能在浏览器中工作只需要你做一些额外的if
/ else
s
例如:
var self = {};
// Browser?
if(instanceof window !== 'undefined')
{
window['my_module_name'] = self;
}
// Otherwise assume Node.js
else
{
module.exports = self;
}
// Put the contents of this module in self
// For instance:
self.some_module_function = function() {
// Do stuff
}
现在,如果您在 Node.js 中,您可以像这样访问函数:
my_module = require('my_module_name');
my_module.some_module_function(58);
或者,如果您在浏览器中,则可以直接调用它,因为它是全局的:
my_module.some_module_function(58);
否则,我可以推荐Stitch.js,它允许您使用 CommonJS 样式require
和模块开发 JavaScript 代码,然后编译它以在浏览器中运行而无需更改代码。
Require.js也允许这种类型的功能。
这是另一个关于在节点和浏览器中使用相同代码的问题:
如何在 nodejs 中使用客户端 js 代码