2016-06-25 7 views
-2

機能間でres(要求オブジェクト)を送信できません。またはときres.end()を使用するnext()を使用するときも、私は理解していないノードExpressミドルウェアres、reqオブジェクトの送信方法

//app.js calls File.js 

//File1.js 
var file2 = require('./File2.js); 
export.modules = function (req,res,next) { 
    file2(data) { 
     res.send(data); //<-- this is not working 
    } 
} 

//File2.js 
export.modules = function(data){ 
    data = 'test'; 
} 

:次のコードは、私のapp.js(メイン急行ミドルウェア)によって実行されます。

答えて

1

あなたからのコードスニペットを理解することは本当に難しい。そのため、私は、あなたがまだデータを使用してクライアントに応答したくないことを意味する、あなたがあなたのミドルウェア内の次の使用送信

対の横についてあなたの2番目の質問に対処しますしかし、他のミドルウェアからのデータを、その最終ミドルウェアに到達した時点でres.send()を使用して処理する必要があります。

res.sendを複数回使用することはできないため、処理が完了したときにres.sendを呼び出す必要があります。また、ユーザーに応答する必要があります。

var app = express(); 
app.use(function(req,res, next){ 
    // some proccessing 
    req.proccessData = "12312312"; 
    next(); 
}) 

app.use(function(req,res, next){ 
    // here you respond the data to the client 
    res.send(req.proccessData); 
}) 

また、あなたがしたいときだけルートに第三のparamとして次の追加ルート(GET、POST、およびなど)でこれを使用することができます。

次のように明示してミドルウェアを使用する必要があります。次の段階にデータを送ってください

+0

これは最高の答えです.1つのステートメント "res.sendは1つしか使用できません"が私の理解を解決します。ありがとう:) - これは解決されます。 – rajesk

関連する問題