Knex.js尝试插入到PostgreSQL时出现错误消息
const express = require("express");
const app = express();
const cors = require("cors");
const knex = require("./db/db");
//middlewares
app.use(cors());
app.use(express.json());
//routes
//creating a task
app.post("/task", async (req, res) => {
const { name } = req.body;
const newtask = await knex
.raw("insert into todo (name) values ($1)", [name])
.then(() => {
knex
.select()
.from("todo")
.then(() => {
res.send(newtask.row);
});
});
});
抛出新错误(Expected ${expectedBindings} bindings, saw ${index}
);^
错误:应为1个绑定,看到0
1条答案
按热度按时间yhuiod9q1#
你几乎答对了。用一个问号
(?)
替换你的$1
,knex会允许的。还有--你把wait和.then结合起来的方式对我来说没有意义。为了澄清我会怎么做:
另一种使用更好的knex语法实现此操作的简化方法是:
请注意,响应对象不包含
rows
,除非它是一个原始查询。最后,在尝试解构name
后,可能需要检查它是否确实存在--人们会尝试将最奇怪的东西发送到网上:)祝你好运!