Kar*_* Gk 39 javascript node.js
我在Node.js中运行以下代码时收到错误
var assert = require('assert');
var request = require('request');
var index = require('./index');
it('verify javascript function', function(done) {
var v2 = index.AddNumbers(5, 6);
assert.equal(11, v2);
done();
});
Run Code Online (Sandbox Code Playgroud)
该index.js文件包含以下代码:
function AddNumbers(a,b){
return a+b;
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
shi*_*tap 88
这种情况多次发生在我身上,因为循环依赖,检查你是否有2个需要彼此的类,从中删除其中一个需要另一个,问题应该解决
T.J*_*der 36
使用NodeJS 模块,要将某些内容公开,您必须将其导出.将此添加到以下结尾index.js:
module.exports.AddNumbers = AddNumbers;
Run Code Online (Sandbox Code Playgroud)
它在我的机器上运行:
$ cat index.js
function AddNumbers(a,b){
return a+b;
}
module.exports.AddNumbers = AddNumbers;
$ cat example.js
var index = require('./index');
var v2 = index.AddNumbers(5,6);
console.log(v2);
$ node example.js
11
我是 Node JS 的初学者,所以我通过导入这样的函数设法得到了这个错误:
const { functionName } = require('./function')
Run Code Online (Sandbox Code Playgroud)
而不是这样:
const functionName = require('./function')
Run Code Online (Sandbox Code Playgroud)
编辑我的帖子以添加解释,因为自从我写它以来我学到了更多的节点。如果一个模块导出一个包含多个函数的对象,如下所示:
module.exports = { functionName, otherFunction }
Run Code Online (Sandbox Code Playgroud)
然后必须在导入期间从对象中解构函数,如第一个代码片段所示。如果模块导出单个函数或默认函数,如下所示:
module.exports = functionName
Run Code Online (Sandbox Code Playgroud)
然后 tt 必须直接导入,如第二个代码片段所示。
如果您需要向公共公开特定的组件、函数或变量。您必须exports使用 JavaScript 模块来处理这些组件。
let add = (a,b)=>{
return ( a+b);
}
module.exports.add=add;
Run Code Online (Sandbox Code Playgroud)
或者如果你想暴露多个函数,你可以这样做。
let add = (a,b)=>{
return (a+b);
}
let subtract = (a, b)=>{
return (a-b);
}
module.exports={
add : add,
subtract : subtract
};
Run Code Online (Sandbox Code Playgroud)