gpt4 book ai didi

json - 在nodejs中从json设置模型值

转载 作者:太空宇宙 更新时间:2023-11-03 22:45:16 24 4
gpt4 key购买 nike

大家好,我想知道如何将 json 字符串保存到 mongoose 模型对象中?让我解释一下我的问题的简化版本:

我有一个架构模型:

const mongo = require('mongoose');
const clientSchema = mongo.Schema({
name: {type: String},
age: {type: Number},
updated_at: {type: Date},
}

我有一个 put 方法,如下所示:

var Client = mongo.model('client', clientSchema);

//Update User
server.put(`/api/clients/:_id`, (req, res) =>
{
Client.model.findById(req.params._id, (err, foundedclient) =>
{
if(err) res.send(err);

//***********************************************************//
/*I want to update foundedclient from req.body here! */
/*some function like : foundedclient.JsonTovalues(req.body); */
//***********************************************************//

foundedclient.updated_at = new Date().toISOString();

foundedclient.save((err) =>
{
res.send('saved successfully!');
});
});
});

req.body 是一个 json:

{
"name":"bardia",
"age":27,
}

我想更新 req.body 中的 foundedclient 值,位于我在代码中突出显示的位置 //********// 标志。我想要一个假设的函数,例如 foundedclient.JsonTovalues(req.body)。实现这一目标的最佳方法是什么?换句话说,将 json 保存为模式值的最佳方法是什么?

非常感谢

最佳答案

您可以定义类似于 updateByJson 的实例方法,如下所述

const clientSchema = mongo.Schema({
name: {type: String},
age: {type: Number},
updated_at: {type: Date},
}

// here simply calling update method internally but exposed as an instance method
clientSchema.methods.updateByJson = function(jsonToUpdate, cb){
// will work if you are using mongoose old version 3.x
this.constructor.update({_id: this._id}, {$set:jsonToUpdate}, cb);
// should work with latest versions
this.model('client').update({_id: this._id}, {$set:jsonToUpdate}, cb);
}

您的客户端代码将如下所示

var Client = mongo.model('client', clientSchema);

//Update User
server.put(`/api/clients/:_id`, (req, res) =>
{
Client.model.findById(req.params._id, (err, foundedclient) =>
{
if(err) res.send(err);

jsonToUpdate = req.body
jsonToUpdate.updated_at = new Date().toISOString();

foundedclient.updateByJson(jsonToUpdate, (err) => {
res.send('saved successfully!');
});
});
});

希望这对您有帮助。

关于json - 在nodejs中从json设置模型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51178337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com