javascript - 如何限制保存后返回的属性?

标签 javascript node.js mongodb mongoose

我试图将保存的对象作为请求响应返回,但我不希望 Model.save() 函数返回整个对象,它返回的信息比我想要的更多,例如_id__v

我的请求代码是这样的:

function insertUser(req, res) {
   const userName = req.Body.name;

      User.save({ name : userName })
         .then(r => {  
            res.send(r);
         });
}

它返回以下 JSON 给我:

{
    _id: 590f529976aa6142d91870b7,
    name: 'blablabla'
    __v: 4
}

如何将其设置为仅返回 { name : 'blablabla' }

最佳答案

您可以为此编写方法:

将此方法添加到您的用户架构中: 使用此方法,您可以控制返回给客户端的内容

userSchema.methods.getPublicFields = function() {
  return {
    name: this.name
  };
};

像这样使用它

User.save({ name : userName })
     .then(r => {  
        res.send(r.getPublicFields);
     });

关于javascript - 如何限制保存后返回的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43836727/

相关文章:

mongodb - Mongodb cursor Finalizer Enabled性能效果

javascript - 每个数字周围的框

javascript - 操作 "imaginary"元素是否比当前在 DOM 中的元素更快?

.net - Assembly::GetExecutingAssembly()->Location 现在抛出 ArgumentException:路径中存在非法字符

node.js - 我可以使用全局变量来同步 Node Express 中的请求吗?

Java、MongoDB : how to insert into subdocument's empty array

c# - MongoDB数据建模——索引和PK

javascript - 设置和测试 UI 路由器

javascript - HTML5 以低 kbps 录制音频

node.js - Masonry 在 ES6 中不能与 jQuery 一起使用?