nodejs 需要文件的功能不能只在一个地方工作
nodejs require file with function not working in one place only
我在一些奇怪的问题上停留了几个小时,我做了几十次这种操作,但由于某种原因,在其中一个文件中,其他所需的文件 return 为空,无法访问函数。
这里是导出文件,文件名是"user-repo.js"
:
const constants = require('./constants');
const parseRepo = require('./parse-repo');
const updateEmail = (userID, email) => {
return new Promise((resolve, reject) => {
parseRepo.getUser(userID).then((user) => {
if(user != undefined){
user.set(constants.EMAIL_KEY, email);
return parseRepo.saveObject(user);
}
}).then((user) => {
resolve(user);
}).catch((e) => reject(e));
})
};
module.exports = {
updateEmail
}
在另一个我想使用这个函数的文件中(updateEmail
)我是这样的:
const userRepo = require('./user-repo');
function(){
.....
userRepo.updateEmail(userID,email);
}
并抛出 错误 updateEmail is not a function
,我对此进行了调试,发现所需的对象 (userRepo
) 为空且没有任何功能,事情是之前在其他文件中我做同样的事情并且 userRepo
工作正常并且具有所有功能。
所有这些文件都在同一个文件夹中
有什么想法吗?
问题是 'Cycles require' 感谢@T.J Crowder 对这个问题的观点,正如他所说,遇到这个问题的每个人都请阅读文档 here
我在一些奇怪的问题上停留了几个小时,我做了几十次这种操作,但由于某种原因,在其中一个文件中,其他所需的文件 return 为空,无法访问函数。
这里是导出文件,文件名是"user-repo.js"
:
const constants = require('./constants');
const parseRepo = require('./parse-repo');
const updateEmail = (userID, email) => {
return new Promise((resolve, reject) => {
parseRepo.getUser(userID).then((user) => {
if(user != undefined){
user.set(constants.EMAIL_KEY, email);
return parseRepo.saveObject(user);
}
}).then((user) => {
resolve(user);
}).catch((e) => reject(e));
})
};
module.exports = {
updateEmail
}
在另一个我想使用这个函数的文件中(updateEmail
)我是这样的:
const userRepo = require('./user-repo');
function(){
.....
userRepo.updateEmail(userID,email);
}
并抛出 错误 updateEmail is not a function
,我对此进行了调试,发现所需的对象 (userRepo
) 为空且没有任何功能,事情是之前在其他文件中我做同样的事情并且 userRepo
工作正常并且具有所有功能。
所有这些文件都在同一个文件夹中
有什么想法吗?
问题是 'Cycles require' 感谢@T.J Crowder 对这个问题的观点,正如他所说,遇到这个问题的每个人都请阅读文档 here