私は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);
のようなものを配置すると、コントローラーコードを別のファイルに配置できます。検証ミドルウェアでも同じことを行い(または検証コードをコントローラーに配置して)、ページを追加し始めたら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){...})
}
私はあなたの質問に答えることを望みます。
コントローラ関数の場合とまったく同じ方法で、ミドルウェア関数を別のモジュールに配置できます。これは、適切なパラメーターのセットを持つエクスポートされた関数です。
だからあなたがvalidation.js
ファイルの場合、user
検証メソッドを次のように追加できます。
exports.user = function (req, res, next) {
... // validate req and call next when done
};