我想向数组添加一个函数。这是一个Express Node.js服务器。但这不是重点。
我添加了以下功能。我知道还没准备好(那不是重点)
File: users.cache.js
// Thats my Array
let Users = []
Users.findOne = function (user) {
return new Promise((resolve, reject) => {
if (typeof user === 'string') {
for (let i = 0; i < Users.length; ++i) {
if (Users[i].username === user) {
resolve(Users[i])
}
}
} else if (typeof user === 'number') {
for (let i = 0; i < Users.length; ++i) {
if (Users[i].id === user) {
resolve(Users[i])
}
}
} else {
reject('Invalid Data Type')
}
})
}
module.exports = {
Users
}
我试图在另一个文件中调用函数。 让我们命名文件:users.service.js
import usersCache from './users.cache'
selectUser(req, res) {
usersCache.Users.findOne(req.params.username).then((userData) => { }
}
如果我尝试执行该功能,则会出现以下错误。
TypeError:_users4.default.Users.findOne不是函数
有人可以解释我的错吗?以及解决方法。
谢谢:)
答案 0 :(得分:0)
好,所以我找到了解决方案。该错误是循环依赖关系,会导致users4_错误消息。解决循环依赖可以解决该问题。
答案 1 :(得分:-1)
更新您的模块导出块。 将其更改为
module.exports = {
Users
}
TO
module.exports = {
Users:Users
}
module.exports是一个对象-具有键值对-您在代码中放入的用户不引用代码中的users函数-仅仅是module.exports对象的属性-将Users对象分配给用户属性-应该可以。