2016-06-25 1 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

그것은 코드 조각에서 이해하는, 그래서 내가 다음에 대한 두 번째 질문을 해결 대

당신은 당신이 데이터를 클라이언트에 응답 아직 싶지 않는 의미, 당신의 미들웨어 내에서 다음 사용 보내드립니다 하지만 다른 미들웨어의 데이터를 줄 아래로 처리하려면 최종 미들웨어에 도달 할 때 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으로 다음 추가 루트 (수, 포스트 등 ...) 이것을 사용할 수 있습니다

당신은 다음과 같은 표현으로 미들웨어를 사용해야합니다 다음 단계로 데이터를 보내십시오

+0

이것은 가장 좋은 대답입니다. "res.send는 오직 하나만 사용할 수 있습니다"라는 내 말은 내 이해를 해결합니다. 고마워요 :) - 해결되었습니다. – rajesk