我有一个更新查询似乎不起作用。使用的基础数据库是 postgres。你能检查一下为什么它不起作用吗?我已经包含了我的 api 和架构。提前致谢
exports.patch_meetup = async (req, res) => {
const findOneQuery = 'SELECT * FROM meetups WHERE id=$1';
const updateOneQuery = `UPDATE meetups
SET topic=$1, location=$2, body=$3, happeningOn=$4, Tags=$5, meetupImage=$6, createdOn=$7
WHERE id=$8 returning *`;
try {
const {
rows
} = await db.query(findOneQuery, [req.params.id]);
if (!rows[0]) {
return res.status(404).json({
'message': 'meetup not found'
});
}
const values = [
req.body.topic,
req.body.location,
req.body.body,
req.body.happeningOn,
req.body.Tags,
req.file.path,
moment(new Date()),
req.params.id
];
const response = await db.query(updateOneQuery, values);
return res.status(200).json(response.rows[0]);
} catch (err) {
return res.status(400).send(err);
}
};`
这是我的模型
const meetupTable = CREATE TABLE IF NOT EXISTS
meetups(
id UUID PRIMARY KEY,
topic VARCHAR(128) NOT NULL,
location VARCHAR(128) NOT NULL,
body TEXT NOT NULL,
happeningOn TIMESTAMPTZ NOT NULL,
Tags TEXT[] NOT NULL,
meetupImage bytea,
createdOn TIMESTAMPTZ DEFAULT Now()
)
我不确定问题可能是什么,但一个可能是你忘记将 multer 中间件添加到 API 端点,另一个就像我在评论中提到的,你不应该传递时刻对象,而是应该按原样传递日期对象。