我是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');
当我运行应用程序时,它会抛出一个错误:错误('请提供验证架构')。
所以,我想知道需要什么验证模式以及我想添加它的位置?
答案 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就是一个很好的例子。