【问题标题】:Data is added to database but postman returns blank. What am I missing?数据已添加到数据库,但邮递员返回空白。我错过了什么?
【发布时间】:2021-05-30 03:50:46
【问题描述】:

我正在尝试通过使用 knex 执行 postgreSQL 操作来准备一个 api。

我的数据模型功能,将保存数据,工作正常。在路由器方面,我成功完成了此操作,但邮递员返回给我一个空对象。

数据模型

function addArticle(newArticle) {
    return db("article")
        .insert(newArticle, "id")
        .then(([id]) => {
            return ("article").where({ id }).first();
        });
}

路由器

router.post('/addArticle',(req, res, next) => {
    const newArticle = req.body;

    Article.addArticle(newArticle)
        .then((article) =>{
            res.status(201).json(article)
        })
        .catch((err)=>{
            res.status(500).json({...err})
        })
});

邮递员

【问题讨论】:

  • 如果您想返回插入的文档详细信息,包括在数据库中创建的 _id 作为响应,请尝试在您的数据模型中使用 insertOne() 而不是 insert() 函数。

标签: node.js postgresql express postman knex.js


【解决方案1】:

为什么在插入数据后不使用 .returning('*') 而不是 .then?

另外,我相信插入数据库是一个异步命令,但我没有看到在任何地方使用异步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-10
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多