为了账号安全,请及时绑定邮箱和手机立即绑定

从外部文件调用函数的 JavaScript 给出 .is not a fuction 错误

从外部文件调用函数的 JavaScript 给出 .is not a fuction 错误

GCT1015 2023-04-20 09:57:53
因此,当我使用 require('fileName.js') 将外部 JavaScript 文件添加到我的主 index.js 文件时。在 index.jsconst caltor = require('./calculate.js');console.log(caltor.adding(5,7));在我的 calculate.js 中function adding (i,y){        return i+y;}顺便说一句,我正在使用 nodejs 来执行。错误说:console.log(caltor.adding(5,7));                   ^TypeError: caltor.adding is not a function
查看完整描述

2 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您需要在“calculate.js”文件中导出函数“adding”。

module.exports = adding;

在您的 index.js 文件中,无需调用 caltor.adding() (假设您只从“calculate.js”中导出一个函数)。

console.log(caltor(5,7));


查看完整回答
反对 回复 2023-04-20
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

Node.js 模块不会自动导出它们的顶级作用域变量/函数。


要导出值,您有两种方法:


将其添加到exports对象


节点模块有一个预定义的变量exports,它的值被导出。将您的功能添加到其中:


function adding (i,y){

  return i+y;

}


exports.adding = adding

const caltor = require('./calculate.js');


console.log(caltor.adding(5,7));

您也可以通过这种方式导出多个值,只需确保为它们指定不同的名称即可:


function adding (i,y){

  return i+y;

}


exports.adding = adding


function subtracting (i,y){

  return i-y;

}


exports.subtracting = subtracting 

const caltor = require('./calculate.js');


console.log(caltor.adding(5,7));

  console.log(caltor.subtracting(5,7));

通过分配给提供“默认”导出module.exports


如果要导出单个值,可以将其分配给module.exports. 在这种情况下,它成为 返回的值require。


请注意,在分配 之后module.exports,在变量上定义属性exports将不再有效。exports分配给变量也不会导出任何东西。


function adding (i,y){

  return i+y;

}


module.exports = adding

const adding = require('./calculate.js');


console.log(adding(5,7));


查看完整回答
反对 回复 2023-04-20
  • 2 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信