【问题标题】:Not able to add new property to mongoose result无法向猫鼬结果添加新属性
【发布时间】:2018-06-12 22:29:38
【问题描述】:

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

 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. user.time=loginDetailsAfterSaving.time;
  2. user['time']=loginDetailsAfterSaving.time;
  3. user.toJSON().time=loginDetailsAfterSaving.time;

但是当我在我的 Angular 应用程序中解码令牌时,我得到了没有 tine 字段的结果。
角码

    let jwtHelper=new JwtHelper();
    let userDetails= jwtHelper.decodeToken(localStorage.getItem("token"));
    console.log(userDetails);

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

任何帮助都会很棒
谢谢

【问题讨论】:

  • 如果你console.log(loginDetailsAfterSaving.time) 有任何输出吗?
  • @Alan 是的,我得到了正确的输出

标签: javascript angularjs node.js mongodb typescript


【解决方案1】:

如果要在文档转换为 JSON 时保留 time 属性,则需要将其添加到 mongoose 架构中。

你也可以在调用toJSON方法后设置属性

const userJson = user.toJSON();
userJson.time = loginDetailsAfterSaving.time;

res.json(userJson);

【讨论】:

    猜你喜欢
    • 2016-03-20
    • 2015-10-10
    • 2021-06-07
    • 2017-09-21
    • 1970-01-01
    • 2019-09-04
    • 2016-04-05
    • 2021-10-27
    • 2021-10-01
    相关资源
    最近更新 更多