当我在模块导出中使用带有 return 的函数时,为什么它给我未定义? node.js
Why does a function with return gives me undefined when I use it inside module export? node.js
我正在练习一些模块导出练习,使用一个带有 return 语句的函数,该语句在模块导出中传递,然后导入到新文件中,它告诉我 total
未定义?为什么会这样?
代码:
文件 1:
// Using Async & Await with MODULE EXPORT.
const googleDat = require('../store/google-sheets-api.js');
//passing a let var from a function to another file
let total = googleDat.addVat(100);
console.log(total);
文件 2:
function addVat(price) {
let total = price*1.2
return total
};
module.exports = {
total
};
结果:
那是因为您导出了一个尚未初始化的变量并且您没有导出您的函数:
function addVat(price) {
//defining variable with let work only in this scope
let total = price*1.2
return total
};
//In this scope, total doesn't exists, but addVat does.
module.exports = {
total //So this is undefined and will throw an error.
};
你要做的是导出你的函数,而不是里面的结果。
function addVat(price) {
return price * 1.2;
};
module.exports = {
addVat
};
在文件 2 上,您应该导出 addVat() 函数本身,而不仅仅是它的 return。试试这个:
exports.addVat = (price) => {
let total = price*1.2
return total
};
我正在练习一些模块导出练习,使用一个带有 return 语句的函数,该语句在模块导出中传递,然后导入到新文件中,它告诉我 total
未定义?为什么会这样?
代码:
文件 1:
// Using Async & Await with MODULE EXPORT.
const googleDat = require('../store/google-sheets-api.js');
//passing a let var from a function to another file
let total = googleDat.addVat(100);
console.log(total);
文件 2:
function addVat(price) {
let total = price*1.2
return total
};
module.exports = {
total
};
结果:
那是因为您导出了一个尚未初始化的变量并且您没有导出您的函数:
function addVat(price) {
//defining variable with let work only in this scope
let total = price*1.2
return total
};
//In this scope, total doesn't exists, but addVat does.
module.exports = {
total //So this is undefined and will throw an error.
};
你要做的是导出你的函数,而不是里面的结果。
function addVat(price) {
return price * 1.2;
};
module.exports = {
addVat
};
在文件 2 上,您应该导出 addVat() 函数本身,而不仅仅是它的 return。试试这个:
exports.addVat = (price) => {
let total = price*1.2
return total
};