【发布时间】:2020-06-06 16:29:21
【问题描述】:
这个问题不太清楚,因为错误本身并不清楚。 主要问题是可能导致空sequelize model loder的情况。
user.js
const db = require('../db/models');
async testFunc function(data){
return new Promise((resolve, reject)=>{
try{
let user = await db.User.findOne({where:{id:data.id}});
resolve(user)
}catch(error){reject(error)}
})
}
module.exports={
testFunc
}
这是定义的模块的 sn-p,它本身就可以正常工作。但是假设它在另一个模块中使用了 db 没有加载所以抛出错误 db.User is undefined
user.js
async testFunc function(data){
return new Promise((resolve, reject)=>{
const db = require('../db/models');
try{
let user = await db.User.findOne({where:{id:data.id}});
resolve(user)
}catch(error){reject(error)}
})
}
module.exports={
testFunc
}
当前的解决方法是在每个函数中都需要模型加载器(还有其他类似的函数)。
只是提出问题以了解可能的错误并找到更好的方法。
【问题讨论】:
-
我不完全确定,但我认为这是因为相对路径
../db/models。如果您在另一个模块中使用该函数,您确定db/models的相对路径与您在此处输入的相同吗? -
没有路径是好的,如果我使用
node user.js执行带有必要参数的testFunc(params);,它也可以工作
标签: javascript node.js sequelize.js