1
我是node.js的新手,正在使用express-validator
作爲中間件來運行此文件,以驗證我的請求中的POST數據。但我得到一個錯誤:表示中間件未觸發
(function(){
var express = require("express");
var expressValidator = require('express-validator');
var app = express();
app.all("*", function(req, res, next) {
console.log("inside my middleware")
next();
});
app.configure(function(){
app.set("port", process.env.PORT || 3000);
app.use(express.json());
app.use(express.urlencoded());
app.use(expressValidator());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.errorHandler());
});
app.post("/test", function(req, res){
req.assert("email", "email is not valid").isEmail();
res.send(200);
})
app.listen(app.get("port"), function(){
console.log("API Server is available on port %s", app.get("port"));
});
}());
這是告訴我,在POST的/test
請求有這應該是express-validator
中間件的一部分,沒有方法斷言。我究竟做錯了什麼?
我讀過bodyParser()創造了很多的tmp文件,因此最好使用express.json()或url編碼() – user3361330
您是否嘗試過使用bodyParser來查看它是否解決了問題? express-validator中的中間件函數同時使用了req.param和req.body,所以可能是沒有它的錯誤 –
是的'TypeError:Object#沒有方法'assert''是我得到的錯誤,也是'req .body'未定義。 –
user3361330