项目中我的一个文件中有一个函数,我更改了它的名称,无法使用新名称访问它!仍然可以拨打旧名称
我尝试删除node_modules并使用npm i
我正在使用的两个文件都有代码:
soapCall.js
之前:
function call(username, password){
...
}
module.exports = call
之后:
function checkUser(username, password){
...
}
module.exports = checkUser
我如何导入和使用:
app.js
const soap = require('../../models/soapCall');
...
soap.checkUser(username, password);
很奇怪,我仍然无法访问新的函数名
在此之前,我使用名称call
,并且STILL可以在我的app.js文件中使用call
函数
答案 0 :(得分:1)
call
已作为函数原型Function.prototype.call
上的一种方法提供。这意味着soap
是一个函数,这就是call
有效但checkUser
无效的原因。
soap
是一个函数,因为您要从文件中导出一个函数,并且只需在主文件中重命名该函数即可。如果要更改名称,请更改导入名称:
const checkUser = require("../../models/soapCall");
或导出对象并按如下方式使用它:
module.exports = { checkUser };
// Main file
const soap = require("../../models/soapCall");
soap.checkUser(...);
对象方法还允许您从一个文件中导出多个函数-您可以通过解构将它们转换为它们自己的变量:
module.exports = { checkUser, otherFunc };
// Main file
const { checkUser, otherFunc } = require("../../models/soapCall");
checkUser(...); // Calls checkUser function
otherFunc(...); // Calls otherFunc function
答案 1 :(得分:0)
您要导出的功能不是对象,因此您需要直接调用soap()
。
关于能够运行call
,这是函数原型的一部分。所以您对Function.prototype.call()
答案 2 :(得分:0)
按照@Wiktor Zychla的评论,像这样使用它
soapCall.js
exports.checkUser(username, password){
}
app.js
const soap = require('../../models/soapCall');
soap.checkUser(username, password);