我是NodeJS的新手,对此我有些挣扎。我正在使用Express并验证数据,我正在使用Celebrate。
我有一个route.js文件,在其中我发出了一个[[POST请求,使用另一个文件中的函数来执行此操作(这是create函数,来自MyController 。可以正常工作!但是当我尝试对validator做同样的事情时,它不起作用。
所以让我们看一下代码。route.js文件:
const express = require("express");
const MyController = require("./controllers/MyController");
const MyValidator= require("./validators/MyValidator");
const routes = express.Router();
routes.post("/path", MuValidator.validateCreate, MyController.create);
<< [MyValidator文件:
module.exports = {
validateCreate() {
celebrate({
[Segments.HEADERS]: Joi.object({
authorization: Joi.string().required(),
}).unknown(),
[Segments.BODY]: Joi.object().keys({
userId: Joi.string().required(),
title: Joi.string().required(),
description: Joi.string().required(),
value: Joi.number().required(),
dueDate: Joi.string().required(),
}),
});
},
}
重要
:如果我直接在自己的路线上编写
验证码
,则只有这样工作:routes.post(
"/path",
celebrate({
[Segments.HEADERS]: Joi.object({
authorization: Joi.string().required(),
}).unknown(),
[Segments.BODY]: Joi.object().keys({
userId: Joi.string().required(),
title: Joi.string().required(),
description: Joi.string().required(),
value: Joi.number().required(),
dueDate: Joi.string().required(),
}),
}),
MyController.create
);
module.exports = {
validateCreate: function() {},
otherMethod: function() {},
};