express-validation抛出错误:错误('请提供验证架构')

时间:2017-08-14 10:21:42

标签: node.js validation express

我是Node.js的新手。我想为表单的一个字段添加一个简单的验证,以测试Express中提供的验证。我按照https://www.npmjs.com/package/express-validation

的步骤进行操作

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

然后我添加了一个文件夹“validation”和文件“edit”,其中包含以下内容:

var Joi = require('joi');

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

在从表单处理帖子的路线中,我添加了相应的参数:

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

并将带有验证规则的中间件和文件保存到vars:

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

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

所以,我想知道需要什么验证模式以及我想添加它的位置?

1 个答案:

答案 0 :(得分: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就是一个很好的例子。