express-validation会抛出一个错误:错误('请提供一个validation模式')

我是Node.js的新手 我想为表单的一个字段添加一个简单的validation来testingExpress中提供的validation。 我按照https://www.npmjs.com/package/express-validation中的步骤操作

我使用了快速validation中间件。 我安装了相应的模块(express-validation和joi)。

然后,我添加了一个文件夹“validation”和文件“编辑”与以下内容:

var Joi = require('joi'); module.exports = { body: { title: Joi.string().required() } }; 

在处理post的path中,我添加了相应的参数:

 router.post('/', validate(validation.edit), function(req, res, next) 

并将具有validation规则的中间件和文件保存到variables中:

 var validate = require('express-validation'); var validation = require('../validation/edit.js'); 

当我运行应用程序时,它会引发一个错误:错误('请提供一个validation模式')。

所以,我想知道什么validation模式是必需的,我想在哪里添加它?

问题在于如何定义您的需求。 由于在edit.js module.exports中只有一个对象,所以你不需要在validation时调用.edit。 你可以做:

 router.post('/', validate(validation), function(req, res, next) 

或者,您可以在validation目录中定义一个index.js文件:

 exports.edit = require('./edit'); 

然后要求:

 var validation = require('../validation/'); 

并保持您的中间件调用相同,因为它。 这将允许您轻松添加更多的validationtypes,只需要一个需求行。 项目的testing目录就是一个很好的例子。