Send response to client in nodejs
Solution 1
I think you're confusing your response.write
with res.write
?
You're using the response
from the request
callback, and not the res
from the app.post
callback
Solution 2
res.send()
is used to send response to the client.
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;
}
});
For instance, It is written as
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000);
Here is the reference http://expressjs.com/en/api.html
Related videos on Youtube
kittu
Worked on different stack of technologies with 6+ years of experience such as: Front-end stack: Javascript, Angular 7/8, HTML5/CSS3, Bootstrap Back-end stack: NodeJs, MongoDb with mongoose, AWS, RabbitMQ Tools: Git, VS Code, Jenkins Passionate about working on enterprise or product based companies with react, node and mongo tech stack
Updated on November 26, 2020Comments
-
kittu over 3 years
Unable to send response data back to client. Its throwing error saying
response.write()
is not a function: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; } });
I am getting the response data in command prompt console but how do I send response data back to client?