猿问

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

因此,当我使用 require('fileName.js') 将外部 JavaScript 文件添加到我的主 index.js 文件时。


在 index.js


const 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


GCT1015
浏览 131回答 2
2回答

不负相思意

您需要在“calculate.js”文件中导出函数“adding”。module.exports = adding;在您的 index.js 文件中,无需调用 caltor.adding() (假设您只从“calculate.js”中导出一个函数)。console.log(caltor(5,7));

胡说叔叔

Node.js 模块不会自动导出它们的顶级作用域变量/函数。要导出值,您有两种方法:将其添加到exports对象节点模块有一个预定义的变量exports,它的值被导出。将您的功能添加到其中:function adding (i,y){  return i+y;}exports.adding = addingconst caltor = require('./calculate.js');console.log(caltor.adding(5,7));您也可以通过这种方式导出多个值,只需确保为它们指定不同的名称即可:function adding (i,y){  return i+y;}exports.adding = addingfunction 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 = addingconst adding = require('./calculate.js');console.log(adding(5,7));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答