2016-08-19 8 views
0

ドキュメントによると、here 私はリクエストオブジェクトを変更できるはずです。ここでは私のために働いていないものの例である:これを行う方法についてExpress.Router内のreq.paramsを変更するExpressj

var express = require('express'); 
var router = express.Router(); 
router.use(function (req, res, next) { 
    req.params.time = Date.now(); 
    next(); 
}); 
router.get('/', function(req, res) { 
    console.log('Time: ', req.params.time); 
    res.send('Something out'); 
}); 
module.exports = router; 

のアイデア? (ノードv6.4.0、npm 3.10.3、express 4.14.0)

答えて

1

Expressは、要求GETパラメータを使用してreq.paramsオブジェクトを再投入します。代わりに、このような何かを:ルート定義がある場合のparams

req.time = Date.now(); 

// snip 

console.log(`Time: ${req.time}`); 
+0

これだけです!男、それは簡単でした。ありがとう。 – user3287495

+0

私は、要求のvars /メソッドを格納する 'req.locals'と、グローバルなアプリケーションのvars /メソッドを示す' app.locals'が良いと思います。 –

1

のparamsのみ使用可能です - あなたの例ではそうではありません。

通常はこの方法のparamsを使用します。

router.get('/:id', function(req, res) { 
    console.log(req.params.id); 
}); 

のでPARAM timeを追加すると、あなたはそれを変更することができるようになります。 しかし、これはあなたが望むものではないと思います。あなたはURLを変更する必要があるからです。だから、より良い)次の(と次のミドルウェアにそれを渡すために

req.somevariable = variable; 

のようなものを使用します。

+0

この回答は私よりも正しいです。私のものではなく、これを受け入れてください。 –

関連する問題