【问题标题】:express-validation throws an error: Error('Please provide a validation schema')express-validation 抛出错误:Error('请提供验证模式')
【发布时间】:2017-08-19 00:55:24
【问题描述】:

我是 Node.js 的新手。我想为表单的一个字段添加一个简单的验证,只是为了测试 Express 中提供的验证。我按照https://www.npmjs.com/package/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');

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

那么,我想知道需要什么验证架构以及我想在哪里添加它?

【问题讨论】:

    标签: node.js validation express


    【解决方案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 就是一个很好的例子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多