express阮一峰のブログ

1582 ワード

http://javascript.ruanyifeng.com/nodejs/express.html
 
nextはあまり使っていません。
一つは何も操作しないで、レキシストオブジェクトの中間部品だけを伝達します。
function uselessMiddleware(req, res, next) { 

    next();

}

上のコードのnextは中間部品のコールバック関数です。パラメータがある場合は、エラーメッセージ、パラメータはエラーテキストです。
function uselessMiddleware(req, res, next) { 

    next('   !');

}

エラーが発生したら、後の中間部品はエラー処理関数が発見されるまで実行されなくなります。
 
レスポンス.sendFileメソッドはファイルを送信するために使用されます。
reponse.renderメソッドは、ページテンプレートをレンダリングするために使用されます。ejsが支持しているように
 
routesマウントパス
var router = express.Router();



router.get('/', function(req, res) {

    res.send('  ');    

});



router.get('/about', function(req, res) {

    res.send('  ');    

});



app.use('/', router);

最後の行がapp.use('/app',router)に変更されると、/app/abroutの2つのパスに相当し、コールバック関数が指定されています。
 
useメソッドは、routerオブジェクトにミドルウェアを指定し、データが正式にユーザに送信される前にデータを処理します。以下は中間部品の例です。
router.use(function(req, res, next) {

    console.log(req.method, req.url);

    next();  

});

  
routerオブジェクトのparamメソッドをパスパラメータの処理に使用します。
router.param('name', function(req, res, next, name) {

    //  name         ……

    console.log(name);

    req.name = name;

    next();  

});



router.get('/hello/:name', function(req, res) {

    res.send('hello ' + req.name + '!');

});

上記のコードの中で、get方法はアクセス経路にnameパラメータを指定しています。param方法はnameパラメータを処理します。注意、param方法はHTTP動詞の方法の前に置かなければなりません。
なぜgetで検証しないですか?