无法向mongoose结果添加新属性

时间:2018-01-03 09:01:35

标签: javascript angularjs node.js mongodb typescript

我有一个userDetail文档,其中包含有关用户的所有详细信息 我有一个登录文档,其中有第一次登录的时间,我想添加到userDetails的结果 这是我的Nodejs服务器应用程序上的代码。

syslogd

用于向我尝试的用户添加“时间”字段。

  1. ./manage.py shell
  2. /dev/log
  3. shared_task
  4. 但是当我在我的角度应用程序中解码令牌时,我得到的结果与tine字段无关 角度代码

     Login.findOne({email:req.body.email},(err,loginDetails)=>{
    
            if(!err){
                if(loginDetails===null){ //user is not already logged in
                        //saving login new details
                    let newLogin=new Login();
                    newLogin.email=req.body.email;
                    newLogin.userType=user.userType;
                    newLogin.save((err,loginDetailsAfterSaving)=>{
    
                        if(err){
    
                            res.status(500).send(err);
                        }               
                        let token=jsonwebtoken.sign(user.toJSON(),"example1");   
                        res.status(200).json({token:token});
                    });
    
                }
    
      

    问题:它发送没有时间字段的原始“用户”对象

    任何帮助都会很棒
    谢谢

1 个答案:

答案 0 :(得分:0)

如果要在文档转换为JSON时保留它,则需要将time属性添加到mongoose模式。

您也可以在调用toJSON方法

后设置属性
const userJson = user.toJSON();
userJson.time = loginDetailsAfterSaving.time;

res.json(userJson);