如何在节点js中排除保存字段

时间:2018-05-16 09:43:15

标签: node.js

我正在使用documentmongodb中保存mongoose,我想通过排除_id等字段向用户发送数据。

router.post('/', async (req, res) => { // create category with an item

    try {
        const category = new Category({
            name: req.body.name,
            icon_url: req.body.icon_url,
            items_quantity: req.body.items.length
        })

        const data = await category.save();
        res.send(data);
    } catch (err) {
        debug(err.message);
    }
})

我想排除_id属性。我搜索过这个但找不到解决办法。有人建议使用Node Package underscore,但如果没有它,怎么办呢。有人建议lean(),我无法理解,如何在我的情况下使用它。

2 个答案:

答案 0 :(得分:0)

为此,我只是在发送到客户端之前删除此字段,如下所示:

router.post('/', async (req, res) => { // create category with an item

    try {
        const category = new Category({
            name: req.body.name,
            icon_url: req.body.icon_url,
            items_quantity: req.body.items.length
        })

        const data = await category.save();
        data._id = null;
        res.send(data);
    } catch (err) {
        debug(err.message);
    }
})

然后不发送_id字段。

希望它有所帮助。

答案 1 :(得分:0)

你可以使用这个兄弟。

我希望它有帮助:)

let obj = {
  _id: '475947598475947957jdhfjkdhjkghdfkjhgjkhdyfer9t8',
  name: 'John Doe'
}

delete obj['_id'];

console.log(obj);