Node.js 如何从服务器上的数据库保存用户id值?
我有登录/注册路径,可以将用户保存到数据库。每个用户都有自己的页面,可以自定义所有内容。例如,用户更改其状态。Status组件对我的服务器进行ajax调用,然后我的服务器尝试从当前会话中找到一个用户(我不知道怎么做),然后在db中更改他的Status属性 我用的是React,Express,Mongoose 我想我可以在/login或/signup路径上将用户保存到我的req对象,但这不起作用Node.js 如何从服务器上的数据库保存用户id值?,node.js,express,mongoose,Node.js,Express,Mongoose,我有登录/注册路径,可以将用户保存到数据库。每个用户都有自己的页面,可以自定义所有内容。例如,用户更改其状态。Status组件对我的服务器进行ajax调用,然后我的服务器尝试从当前会话中找到一个用户(我不知道怎么做),然后在db中更改他的Status属性 我用的是React,Express,Mongoose 我想我可以在/login或/signup路径上将用户保存到我的req对象,但这不起作用 api.get('/login', (req) => { ...getting dat
api.get('/login', (req) => {
...getting data from req obj
req.user = user
...doing other things
});
req对象包含来自http调用的数据 例如,如果您的react应用程序对此url发出GET请求
http://localhost/user/123
您在express应用程序中定义了一条路线,如下所示
router.get('user/:id', getUser());
然后,您可以访问此请求对象以获取http url参数中的用户id
function getUser(req, res) {
let user_id = req.params.id
}
有了这个用户id,您可以在mongodb中找到一个使用mongoose的用户,如下所示
function getUser(req, res) {
let user_id = req.params.id;
User.findOne({'_id': user_id}, (err, user) => {
if(err) {
return res.json(err);
}
return res.json(user);
});
}
或者您可以更新用户对象
function update(req, res) {
let user_id = req.params.id;
let avatar_url = req.body.avtar;
User.findOne({ '_id': user_id }, (err, user) => {
if (err) {
return res.json(err);
}
user.avatar = avatar_url;
user.save((err, user) => {
if(err) {
return res.json(err);
}
return res.json(user);
})
});
}
建议您阅读本文以了解基础知识。
定义“不起作用”<代码>请求包含传入的数据。您通常使用该对象,而不是分配给它,这正是您正在做的。但是,如何在服务器上存储该用户id呢?例如,授权用户试图更改其化身,而化身组件发出ajax调用以路由/更改数据并更改当前用户的化身,但我不知道应该更改哪个化身,因为我不知道用户的id?可能我不清楚,如果是这样的话,很抱歉。您在请求中传入用户的id。要么在params中,要么在body中。然后在changedata函数中,您可以找到具有该id的用户并进行任何更改。看看推荐的阅读材料。如果这对你有帮助的话,你可以自己试一下,把它标记为已解决。任何进一步的具体问题,你都应该问一个新问题。