0

如何在 server.js 文件中包含包含类定义的文件?

我不想使用 module.exports 因为我也想在我的客户端 javascript 代码中使用这个文件。

谢谢!

4

1 回答 1

1

如果您希望模块的内容在文件范围之外可用,则必须使用module.exports. 使文件也能在浏览器中工作只需要你做一些额外的if/ elses

例如:

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 代码

于 2012-07-22T00:41:41.817 回答