在嘗試向主題表添加新主題時,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 ) })
為什么 Postgres 談論第 0 列;這是什么意思?
米脂
2022-12-29 15:10:01