我创建了两个文件app.js和helpers.js,当我尝试从app.js调用函数时,出现错误,未定义函数。
这两个文件位于同一文件夹中。我认为module.exports关键字有问题,
有人可以在这里帮助我吗?这是两个单独文件的代码:
//app.js
const helpers= require('./helpers');
const total= sum(10,20);
console.log("total:",total);
//helpers.js
const sum = (a,b)=>{
return a+b;
}
module.exports={
sum
};
我得到的错误是:
const total= sum(10,20);
^
ReferenceError: sum is not defined
at Object.<anonymous> (E:\testing\app.js:5:14)
at Module._compile (internal/modules/cjs/loader.js:1147:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
at Module.load (internal/modules/cjs/loader.js:996:32)
at Function.Module._load (internal/modules/cjs/loader.js:896:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
答案 0 :(得分:1)
尝试这种方式:
//app.js
const helpers= require('./helpers');
const total= helpers.sum(10,20);
console.log("total:",total);
//helpers.js
const sum = (a,b)=> {
return a+b;
}
module.exports = sum;
答案 1 :(得分:1)
问题是您要在对象中的sum
中导出函数helpers.js
:
// helpers.js
// ...
module.exports = {
sum
};
如果您想从app.js
访问它,则可以使用helpers.sum(...)
来访问它:
// app.js
const helpers = require('./helpers');
const total = helpers.sum(10, 20);
console.log("total:", total);
...,或者您可以在require
行中使用对象解构:
// app.js
const { sum } = require('./helpers');
// ...
当然,您发布的答案确实有用,但是使用helpers.js
这个名称,我认为您可能希望将多个辅助函数放入该文件中。然后,您必须使用对象导出-如上所述-才能导出所有助手功能。
答案 2 :(得分:0)
您可以尝试编辑将sum
函数导出到以下方式:
module.exports = sum;
那是因为在定义时:
module.exports = {...}
这意味着您要导出的是对象,而不是函数。
用法:
const sum= require('./helpers');
const total= sum(10,20);
console.log("total:",total);
答案 3 :(得分:0)
最后,我找到了答案。
我只需要在 app.js 第一行中用 sum 关键字替换 helpers 关键字,并且还删除了花括号根据其他人的建议,在 helpers.js 中的 sum 左右。
正确的代码在下面
//app.js
const sum= require('./helpers');
const total= sum(10,20);
console.log("total:",total);
和
//helpers.js
const sum = (a,b)=>{
return a+b;
}
module.exports=sum;