当我在模块导出中使用带有 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
};