我是整个 Node.js 的新手,所以我仍在尝试了解事物是如何“连接”的。
我正在尝试使用 express-form验证。根据你可以做的文档
app.post( '/user', // Route
form( // Form filter and validation middleware
filter("username").trim()
),
// Express request-handler gets filtered and validated data
function(req, res){
if (!req.form.isValid) {
// Handle errors
console.log(req.form.errors);
} else {
// Or, use filtered form data from the form object:
console.log("Username:", req.form.username);
}
}
);
在 App.js 中。但是,如果我放置类似 app.get('/user', user.index);
的内容,我可以将 Controller 代码放在单独的文件中。我想对验证中间件做同样的事情(或将验证代码放在 Controller 中),以便在我开始添加更多页面后更容易查看 App.js 文件。
有没有办法做到这一点?
基本上我想放类似 app.get('/user', validation.user, user.index);
最佳答案
这是您定义路线的方式:
routes.js:
module.exports = function(app){
app.get("route1", function(req,res){...})
app.get("route2", function(req,res){...})
}
这是您定义中间件的方式:
middlewares.js:
module.exports = {
formHandler: function(req, res, next){...}
}
app.js:
// Add your middlewares:
middlewares = require("middlewares");
app.use(middlewares.formHandler);
app.use(middlewares...);
// Initialize your routes:
require("routes")(app)
另一种方法是使用您的中间件每条路线:
routes.js:
middlewares = require("middlewares")
module.exports = function(app){
app.get("route1", middlewares.formHandler, function(req,res){...})
app.get("route2", function(req,res){...})
}
希望我能回答你的问题。
关于node.js - 如何在 Node.js/Express.js 中将中间件放入它自己的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14958296/