首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs在不存在的json对象中添加新字段

nodejs在不存在的json对象中添加新字段
EN

Stack Overflow用户
提问于 2022-05-15 12:20:27
回答 1查看 238关注 0票数 0

我试图用新字段返回一个json,而不是已经在其中的字段。json的结构如下:

代码语言:javascript
复制
objJson={
 istructor_id:"12345",
 student_id:"333",
 date: "2022-10-5"
}

我想增加两个新字段:

代码语言:javascript
复制
istructor_name:"john"
istructor_surname:"west"

我试过这样的方法:

代码语言:javascript
复制
objJson['istructor_name']= "john";
objJson['istructor_surname']= "west";

当我编写代码: console.log(objJson.istructor_name) //output: john时,它看起来很有效,但是如果我尝试:

console.log(objJson);

//产出:

代码语言:javascript
复制
{
 istructor_id:"12345",
 student_id:"333",
 date: "2022-10-5"
}

编辑:我正在处理的JSON由objJson=await model.find().exec()返回

所有代码:

代码语言:javascript
复制
function posizione_dati_istruttore(istructos_id,istructors_data){
    for(let i=0;i<istructors_data.length;i++){
        if(istructors_data[i]._id.toString()===istructor_id)
            return i;
    }
    return -1;
}

router.get('/mieGuide',async(req,res)=>{
    var student_id=req.query.my_id;
    var drivings=await Prenotations.find({student_id:student_id},{student_id:0}).exec();

    var istructors_ids=[];
    for(let i=0;i<drivings.length;i++){
        istructors_ids.push(drivings[i].istructor_id);
    }
    const istructors_data= await Istructors.find({_id: {$in: istructors_ids}},{_id:1,name:1,surname:1}).exec()
    var pos=0
    for (let i=0; i < drivings.length; i++){
        pos=posizione_dati_istruttore(drivings[i].istructor_id,istructors_data);
        if(pos<0){
            console.log("error");
            res.status(400).json({err: "error"});
        }
        
        drivings[i]['istructor_name']= istructors_data[pos].name;
        drivings[i]['istructor_surname']= istructors_data[pos].surname;
        
    }
    console.log(drivings);
    res.status(200).send();
})
EN

回答 1

Stack Overflow用户

发布于 2022-05-15 12:24:21

你所做的不应该引起任何问题,并且得到你期望的输出,

返回一个带有新字段的新json onbject,并使用spread运算符(.)保留旧的田地。

喜欢

代码语言:javascript
复制
return {istructor_name:"john",istructor_surname:"west",...objJson}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72248202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档