2016-11-26 200 views
1

无法将响应数据发送回客户端。它抛出错误说response.write()不是一个函数:向nodejs中的客户端发送响应

var express = require('express'); 
var app = express(); 
var request = require('request'); 

var port = process.env.PORT || 5000; 
app.set('port', (port)); 

app.use(express.static(__dirname + '/')); 
app.get('/', function(request, response) { 
    response.render('/'); 
}); 

app.listen(app.get('port'), function() { 
    console.log('Node app is running on port', app.get('port')); 
}); 

app.post('/login', verifyLogin); 

function verifyLogin(req, res, next) { 
    var loginParams = { 
     'username': req.body.username, 
     'password': req.body.password 
    }; 

    request({ 
     url: 'http://localhost:8084/xxx/auth', //URL to hit 
     qs: {username: req.body.username, password: req.body.password}, 
     method: 'POST', 
     json: { 
      "username": req.body.username, "password": req.body.password 
     } 
     }, function(error, response, body){ 
     if(error) { 
      console.log(error); 
     } else { 
     response.write(body); // ERROR here response.write is not a function 
     return response; 
    } 
}); 

我得到的命令提示符控制台响应数据,但我怎么响应数据发送回客户端?

+0

使用response.send()或res.send()函数来代替 –

回答

2

我觉得你很困惑你的response.writeres.write

您使用的是responserequest回调,而不是resapp.post回调

4

res.send()用于发送响应到客户端。

function verifyLogin(req, res, next) { 
    var loginParams = { 
     'username': req.body.username, 
     'password': req.body.password 
    }; 

    request({ 
     url: 'http://localhost:8084/xxx/auth', //URL to hit 
     qs: {username: req.body.username, password: req.body.password}, 
     method: 'POST', 
     json: { 
      "username": req.body.username, "password": req.body.password 
     } 
     }, function(error, response, body){ 
     if(error) { 
      console.log(error); 
     } else { 
     //response.write(body); // ERROR here response.write is not a function 

      res.send(body);// AND IT SHOULD BE USUALLY TRUE OR WITH THE OBJECT 
//SO IT CAN ALSO BE 
      res.send(true); 
//   return response; 
     } 
    }); 

例如,它被写成

var express = require('express'); 
var app = express(); 

app.get('/', function(req, res){ 
    res.send('hello world'); 
}); 

app.listen(3000); 

这里是参考http://expressjs.com/en/api.html

相关问题