2017-08-14 50 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就是一個很好的例子。