2016-04-22 6 views
0

私はちょうどLoopback APIフレームワークを開始しており、次の関数に渡す前にreqデータを前処理するミドルウェアを定義したいと考えています。しかし、私はreqオブジェクトのデータにアクセスする方法を知らない。どんな助け?ループバックミドルウェア - reqオブジェクトのデータにアクセスするには?

など。

function middleWareThatAddAPropertyToTheRequestJSON(req, res, next) { 
    // Of course I get undefined for req.data, but that's approximately what I want. 
    req.data.somethingIWouldLikeToChange = "blahblahblah"; 
} 

編集:私は(server.jsと同じディレクトリに)(server.js中)middleware.jsonの

var loopback = require('loopback'); 
var boot = require('loopback-boot'); 

var app = module.exports = loopback(); 

app.start = function() { 
    // start the web server 
    return app.listen(function() { 
    app.emit('started'); 
    var baseUrl = app.get('url').replace(/\/$/, ''); 
    console.log('Web server listening at: %s', baseUrl); 
    if (app.get('loopback-component-explorer')) { 
     var explorerPath = app.get('loopback-component-explorer').mountPath; 
     console.log('Browse your REST API at %s%s', baseUrl, explorerPath); 
    } 
    }); 
}; 

// Bootstrap the application, configure models, datasources and middleware. 
// Sub-apps like REST API are mounted via boot scripts. 
boot(app, __dirname, function(err) { 
    if (err) throw err; 

    // start the server if `$ node server.js` 
    if (require.main === module) 
    app.start(); 
}); 

一部をアプリの作成方法を説明します

... 
"initial": { 
... 
    "./middleware/rest/middlewareThatAddAPropertyToTheRequestJSON": {} 
}, 
... 

ミドルウェア/レスト/ミドルウェアこのページのトップへリクエストの仕組みに戻る:

module.exports = function() { 
    return function middlewareThatAddAPropertyToTheRequestJSON(req, res, next) { 
     // TODO: add sth to the req 
     next(); 
    }; 
}; 

別の編集:

はおそらく、私は正確なものではありませんよ。私はPOSTリクエストを変更したい。

クライアント記事:

{ "A": "B"}

私が要求にキーと値のペアを追加します。どのようにそれを行うことができますか?

答えて

0

それは我々だけ(referenceで述べたように)http.IncomingMessageクラスのインスタンスであるreqオブジェクトのReadable.read()方法を通じて要求メッセージを読むことができることが分かります。そして、(私にとって)メッセージを修正することは不可能です。とにかくリクエストメッセージを操作する必要がある場合は、reqオブジェクトを使用して処理することはありません。 @IvanSchwarzに言及されているように、通常、他のステップでそれを行うことができます。 DBに格納する前に、メッセージをどのような方法に渡してもかまいません。

ありがとうございます。

関連する問題