【发布时间】:2021-12-07 17:25:11
【问题描述】:
我正在创建一个 API 并决定使用 express-validator 进行验证(废话),我以前从未使用过它,所以我不确定它的某些方面,所以我的验证可能不是最好的,但我我过去了。
我已经使用它构建了两个验证中间件,并将它们从同一个文件夹中导出,如下所示:
module.exports = {
create: require('./create'),
update: require('./update')
}
所以我可以在我的路由器中执行此操作:
const validation = require('../validations/plotValidation')
// ...
router.get('/', controller.all)
router.post('/create', validation.create(), controller.create)
router.get('/:plotId', controller.read)
router.put('/:plotId/update', validation.update(), controller.update)
router.delete('/:plotId/delete', controller.delete)
// ...
我对 express-validator 不够好,无法使用同一个文件验证两条路线,也许我会在某个时候尝试一下。
.post 方法可以正常工作并验证我想要的所有内容,但是 .put 方法似乎忽略了这里的每个检查都是文件,以防您想查看检查:
const { body, check, param } = require('express-validator');
module.exports = () => {
return [
param('plotId')
.exists().withMessage('URI requires plot id'),
body('price')
.optional()
.isObject()
]
}
正如您可能知道的那样,我只是说出来了,但即使只有这两个微小的检查,它似乎也没有运行。
express-validator 对 PUT 方法不起作用吗?
【问题讨论】: