在Node.js中添加外部JavaScript文件

6
我有一个node服务器,并且我想要添加一个外部的.js文件(比如说something.js)。目前我有这段代码: var st = require('./js/something'); 其中something.js是一个在/js/文件夹中的JavaScript文件。服务器已经编译并运行,但是当我试图使用在something.js中定义的函数时,node会告诉我它们没有被定义。
我也尝试以st.s()的形式运行它们,但是什么也没发生,我得到了一个错误,说这个对象没有方法s()
有人能帮帮我吗?
谢谢,
编辑:
记录st的值为{}(我通过console.log(JSON.stringify(st))获得它)。同时,执行console.log(st)的结果也是{}something.js的内容只有一堆像这样定义的函数:
function s() {
    alert("s");
}

function t() {
    alert("t");
}

你能在这里粘贴something.js的代码吗? - alessioalex
使用exports: http://stackoverflow.com/questions/5939423/node-js-module-export-system-is-it-possible-to-export-a-module-as-a-function - malletjo
你不需要将它转换为JSON格式。只需执行 console.dir(st); ... - Šime Vidas
Racar,你能否更具体地说明一下导出(exports)的使用方法?我从那个问题中没有理解到如何使用它们,或者在这种情况下应该如何使用它们。 - Masiar
1
在你的 something.js 文件中,输入 " module.exports = { st: function() { console.log('test'); } } "。 - alessioalex
1个回答

10

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");
}

同意!请参见https://dev59.com/DG855IYBdhLWcg3wMRVW - user5161995

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接