53

Express 4 へのアップグレードと app.router の削除に続いて、ルートの実行後にミドルウェアを実行するのに苦労しています。

たとえば、次のコードは「hello」で正しく応答しますが、構成されたミドルウェアを呼び出しません

var express = require( "express" )();

express.get( "/", function( req, res ) {

    res.send( "hello" );

} );
express.use( function( req, res, next ) {

    console.log( "world" );
    next();

} );

express.listen( 8888 );

説明:

次のコードは、コンソールに「前」を表示しますが、「後」は表示しません。

var express = require( "express" )();

express.use( function( req, res, next ) {

    console.log( "before" );
    next();

} );
express.get( "/", function( req, res ) {

    res.send( "hello" );

} );
express.use( function( req, res, next ) {

    console.log( "after" );
    next();

} );

express.listen( 8888 );
4

5 に答える 5

4

next() 呼び出しの後に console.log を配置することを確認しましたか?

express.use( function( req, res, next ) {
  next();
  console.log( "world" );
});
express.get( "/", function( req, res ) {
  res.send( "hello" );
});
于 2015-03-12T22:41:34.057 に答える