Bug Report
Restify Version
8.3.3
Node.js Version
11.15.0
Expected behaviour
The client should get 0 when res.contentType = 'application/json'; res.send(200, 0) is done and false when res.contentType = 'application/json'; res.send(200, false) is done.
Actual behaviour
The client gets null.
Repro case
server.get('/zero', function(req, res, next) {
res.contentType = 'application/json';
res.send(200, 0);
next();
});
Cause
var data = body ? JSON.stringify(body) : 'null'; in formatJSON formatter returns null if any falsy object is in the body. Now 0 isn't a valid JSON object, but it is a valid JSON value and the parsers are able to parse it. Sending any other number actually send the number, not the null, so I think sending actual 0 would be consistent.
Are you willing and able to fix this?
Yes.