我有一个节点服务器,我想添加一个外部.js文件(比如something.js
)。我现在有这个代码:
var st = require('./js/something');
something.js
是/js/
文件夹中的JavaScript文件。服务器编译并运行,但是当我尝试使用something.js
节点中定义的函数时,告诉我它们没有被定义。
我还尝试使用st.s()
之类的方式运行它们,但没有任何反应,我有一个错误,说该对象没有方法s()
。
任何人都可以帮助我吗?
谢谢,
编辑:
记录st
会{}
(我从console.log(JSON.stringify(st))
获取。console.log(st)
也会{}
作为结果。
something.js
的内容只是一堆像这样定义的函数
function s() {
alert("s");
}
function t() {
alert("t");
}
答案 0 :(得分:9)
Node.js使用CommonJS模块格式。本质上,附加到exports
对象的值可供模块的用户使用。所以,如果您使用的是这样的模块
var st = require('./js/something');
st.s();
st.t();
您的模块必须导出这些功能。所以你需要将它们附加到exports对象。
exports.s = function () {
console.log("s");
}
exports.t = function () {
console.log("t");
}