首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongodb Async-await Post方法

mongodb Async-await Post方法
EN

Stack Overflow用户
提问于 2019-04-03 09:15:06
回答 3查看 119关注 0票数 1

如何在使用async-await时发布到mongodb中引用的模式。我能够创建get函数,但我很难创建post和put。下面是我的get函数:

EN

回答 3

Stack Overflow用户

发布于 2019-04-03 14:27:08

我认为,在你的请求体中,你应该只传递问题id和用户id。因此,当您使用get task details API获取任务时,mongoose将预先填充数据。

您的请求主体应如下所示

代码语言:javascript
复制
{
  issue: "5ca2b1f80c2e9a13fcd5b913",
  user: "5ca2b1f80c2e9a13fcd5b90b",
  record: {
    votary: 80,
    development: 90,
    test: 100
  },
  date: "2019-03-01T15:00:00.000Z"
};

,然后将任务详细信息另存为

代码语言:javascript
复制
try {
  const task = new TaskModel(req.body);
  const result= await task.save()
  return api.responseJSON(res, 200, result);
} catch (e)
{
// Error
}
票数 1
EN

Stack Overflow用户

发布于 2019-04-03 10:25:51

只需将post中的代码包装在try/catch中

代码语言:javascript
复制
export const post: Operation = async (req: express.Request, res: express.Response) => {
    try {
        const param: any = {};
        const task = new TaskModel(req.body);
        const newTask = await task.save()
        return api.responseJSON(res, 200, newTask);
    } catch(err) {
        // treat error
    }
}
票数 0
EN

Stack Overflow用户

发布于 2019-04-03 16:33:41

您不应该保存完整的req.body,而应该只保存您的模式接受的那些字段。根据Task模式,issueuser字段应该存储id,而不是req.body中的完整对象。请尝试此操作并相应地更新您的post方法:

代码语言:javascript
复制
    export const post: Operation = async (req: express.Request, res: express.Response) => {
        try {
            let param: any = {};
            const user = {
                id: req.body.user.id
            };
            const issue = {
                id: req.body.issue.id
            };
            param = req.body;
            param.user = user.id
            param.issue = issue.id
            const task = new TaskModel(param);
            const newTask = await task.save()
            return api.responseJSON(res, 200, newTask);
        } catch (e) {
            api.responseJSON(res, 400, e)
        }
    };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55485636

复制
相关文章

相似问题

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