首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更新返回错误响应

更新返回错误响应
EN

Stack Overflow用户
提问于 2018-05-11 02:00:12
回答 1查看 48关注 0票数 0

我有以下的项目文档与开发人员领域。我想推送从mySQL查询返回的多条记录。

代码语言:javascript
复制
/* project document */
{
    "_id" : ObjectId("5ad77d2ccec38c21b8cbea0b"),
    "description" : "blah blah blah",    
    "startDate" : null,
    "completedOn" : null,
    "lastStatusOn" : null,
    "status" : "Unassigned",
    "devTime" : "00:00:00.0000000",
    "devLevel" : "Basic",
    "estDevTime" : "00:00:00.0000000",
    "developers" : [],
    "notes" : [],
    "__v" : 3
}

我从mySQL返回了以下数据。

代码语言:javascript
复制
[ RowDataPacket { userid: 'jd1234', fullName: 'Joh Doe' },
  RowDataPacket { userid: 'jd5678', fullName: 'Jane Doe' } ]

我想将这些数据推入项目文档中的developers数组中。

期望的结果:

代码语言:javascript
复制
/* project document */
{
    "_id" : ObjectId("5ad77d2ccec38c21b8cbea0b"),
    "name" : "shopping cart",
    "description" : "blah blah blah",    
    "startDate" : null,
    "completedOn" : null,
    "lastStatusOn" : null,
    "status" : "Unassigned",
    "devTime" : "00:00:00.0000000",
    "devLevel" : "High",
    "estDevTime" : "00:00:00.0000000",
    "developers" : [
        { userid: 'jd1234', fullName: 'Joh Doe' },
        { userid: 'jd5678', fullName: 'Jane Doe' }
    ],
    "notes" : [],
    "__v" : 3
}

我有以下代码。我没有得到错误,但开发人员没有被插入。

代码语言:javascript
复制
router.post('/saveDeveloper', async (req, res) => {
  let userList = req.body.attuid,
      users = userList.split(',').map(attuid => `'${attuid.trim()}'`).join(',');


  mySQLdb.connect();
  let sql = `SELECT userid, fullName FROM users WHERE userid IN (${users})`;

  mySQLdb.query(sql, function (err, results) {
    if (err) throw err;
    console.log(results);

    Project.update(
      {_id: req.body.projectID},
      {"$push": {
        "developers": {"$each": results}
        }
      }
    );

    res.json(results);    
  });

  mySQLdb.end();

});

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-11 02:14:20

这是因为您返回的是第一个查询的结果,即sql查询。results是由sql查询返回的数组,您将发送该数据作为响应。

如果要发送更新后的结果,则必须发送更新集合后获得的结果的响应,然后在.update(..的回调函数中获得更新后的结果,如下所示

此外,您必须处理数据results才能将其转换为json,因此您可以添加以下步骤来操作results

代码语言:javascript
复制
var string=JSON.stringify(results);
var json =  JSON.parse(string);
Project.update(
  {_id: req.body.projectID},
  {"$push": {
    "developers": {"$each": json }
    }
  },function(err,resp){

    res.json(resp)
  }
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50278877

复制
相关文章

相似问题

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