'TypeError: Converting circular structure to JSON'快递



我在项目中使用 NodeJS 和 Express,并在用户登录索引时设置它以保留会话值。

req.session.user

{ adminID: 3, 用户名: 'admin', 密码: 'admin' }

我想从MYSQL获取数据,所以我像这样使用Knex。

router.get('/profile/user/me', (req, res, next) => {
let user = req.session.user;
if(user) {
try {
let me = req.session.user.adminID;
let info = knex('admin_account').where('adminID', `%${me}%`)
res.json(info)
} catch (e) {
console.log(e);
}
res.sendFile(path.join(__dirname + '/../public/personal_information.html'));
return;
}else{
res.redirect('/');
}
});

在我看来,我认为如果我们完成登录,我们将拥有一个req.session.user我将使用它与 Knex 一起获取数据。

req.sessions.userinfo可能具有相同的值,但不是您应该具有的相同类型,首先检查变量 info 的值console.log(info),如果您想将其作为响应发送,则可能需要json.parse()json.stringify()它。

您需要执行查询构建器并等待结果,然后再返回:

knex('admin_account').where('adminID', me)
.then(info => {
res.json(info)
})
.catch(err => {
console.log(e);
});

而且你不需要%通配符,除非你正在与like运算符进行松散的字符串比较。

关于代码的另一件事是,您似乎试图同时返回res.jsonres.sendFile(path.join(__dirname + '/../public/personal_information.html')),这没有意义。

最新更新