Node.js 如何从服务器上的数据库保存用户id值?

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

我有登录/注册路径,可以将用户保存到数据库。每个用户都有自己的页面,可以自定义所有内容。例如,用户更改其状态。Status组件对我的服务器进行ajax调用,然后我的服务器尝试从当前会话中找到一个用户(我不知道怎么做),然后在db中更改他的Status属性

我用的是React,Express,Mongoose

我想我可以在/login或/signup路径上将用户保存到我的req对象,但这不起作用

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的用户并进行任何更改。看看推荐的阅读材料。如果这对你有帮助的话,你可以自己试一下,把它标记为已解决。任何进一步的具体问题,你都应该问一个新问题。