我有获取路由router.get('/users', getAllUsers)
export const getAllUsers: RequestHandler = (req, res, next) => {
knex
.select(
'Users.UserID',
'Users.FirstName',
'FaceRecognition.FaceFeature'
)
.from('Users')
.leftJoin('FaceRecognition', 'Users.FaceID', 'FaceRecognition.FaceID')
.then((result: User) => {
res.json(result)
})
};
返回
[
{
"UserID": 2,
"FirstName": "Minor",
"FaceFeature": 23.2
},
{
"UserID": 1,
"FirstName": "Major",
"FaceFeature": 19.9
}
]
理应如此。但是我的补丁路由router.patch('./editUser', editUser);
应该调用此 knex 例程:
export const editUser: RequestHandler = (req, res, next) => {
const {UserID, FirstName, FaceFeature} = req.body;
knex('Users')
.where('UserID', '=', UserID)
.update({
FirstName: FirstName
})
.then(() => {
res.status(204).end()
})
};
使用邮递员,我向 JSON 请求正文发送一个 PATCH 请求来localhost:8080/admin/editUser
{
"UserID": 2,
"FirstName": "Patcher",
"FaceFeature": 1
}
我只是得到一个404 not found
和Cannot PATCH /admin/editUser
.有什么线索吗?
解决方案是将路由 url'./editUser'
更改为'/editUser'
。令人尴尬的开发错误,希望答案可以引导其他人摆脱调试迷雾。