2017-08-14 54 views
1

我是Node.js的新手。我想为表单的某个字段添加一个简单的验证来测试Express中提供的验证。我按照步骤https://www.npmjs.com/package/express-validation表达式验证抛出一个错误:错误('请提供一个验证模式')

我使用了快速验证中间件。我安装了适当的模块(express-validation和joi)。

然后我添加了一个文件夹,“验证”和文件“编辑”具有以下内容:

var Joi = require('joi'); 

module.exports = { 
    body: { 
     title: Joi.string().required() 
    } 
}; 

在路由处理来自我添加了相应的参数表格后:

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

并保存中间件与验证规则文件的增值经销商:

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

当我运行应用程序时,它会抛出一个错误:错误('请提供一个验证模式')。

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

回答

1

问题出在您如何定义您的需求。由于edit.js module.exports中只有一个对象,因此您无需在验证中调用.edit。你可以这样做:

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

或者,你可以在你的验证目录定义index.js:

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

然后需要它:

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

并保持中间件调用和你一样。这将允许您轻松添加更多验证类型,只需要一个需求线。 project's test directory就是一个很好的例子。