nodejs - first argument must be a string or Buffer - when using response.write with http.request
response.statusCode
is a number, e.g. response.statusCode === 200
, not '200'
. As the error message says, write
expects a string
or Buffer
object, so you must convert it.
res.write(response.statusCode.toString());
You are also correct about your callback comment though. res.end();
should be inside the callback, just below your write
calls.
I get this error message and it mentions options.body
I had this originally
request.post({
url: apiServerBaseUrl + '/v1/verify',
body: {
email: req.user.email
}
});
I changed it to this:
request.post({
url: apiServerBaseUrl + '/v1/verify',
body: JSON.stringify({
email: req.user.email
})
});
and it seems to work now without the error message...seems like bug though.
I think this is the more official way to do it:
request.post({
url: apiServerBaseUrl + '/v1/verify',
json: true,
body: {
email: req.user.email
}
});
Request takes a callback method, its async! So I am assuming, by the time the callback is executed the res.end()
might get called. Try closing the request within the callback.