在尝试向主题表添加新主题时,Postgres 认为我想向第 0、1 和 3 列添加一些内容。为什么?
我正在使用 Postman 发布一个新用户。在用户路由中,我将用户对象插入到用户表中。这样可行。
我的第二步是subjects如果该主题尚不存在,则将该主题插入表格中。
这就是问题所在。
此方法应在subjects表中插入一个新主题并返回新行:
insertSubject(knex, newSubject) {
return knex
.insert(newSubject)
.into('subjects')
.returning('*')
.then(rows => {
console.log(rows)
return rows[0]
})
},
我没有这样做,而是在邮递员中收到了这条消息:
{
"message": "insert into \"subjects\" (\"0\", \"1\", \"2\") values ($1, $2, $3) returning * - column \"0\" of relation \"subjects\" does not exist",
"error": {
"length": 122,
"name": "error",
"severity": "ERROR",
"code": "42703",
"position": "25",
"file": "parse_target.c",
"line": "1034",
"routine": "checkInsertTargets"
}
作为参考,这就是我调用上述方法的方式:
.post(jsonParser, (req, res, next) => {
const { first_name, last_name, email, user_password, gender, tutor, student, fee, in_person, online_medium, subjects } = req.body;
const userFields = { first_name, last_name, email, user_password, gender, tutor, student, fee, in_person, online_medium, subjects };
const newUser = { first_name, last_name, email, user_password, gender, tutor, student, fee, in_person, online_medium };
for (const [key, value] of Object.entries(userFields)) {
if (value === null) {
return res.status(400).json({
error: { message: `Missing ${key} in request body` }
})
}
}
const user = []
UsersService.insertUser(
req.app.get('db'),
newUser
)
.then(res => {
user.push(res)
return SubjectsService.getBySubject(
req.app.get('db'),
subjects
)
})
慕尼黑的夜晚无繁华
繁华开满天机
相关分类