Also, it seems a little weird to say `200` when the username is taken... I understand why you did it (200 is it exists, 404 is not found) but wouldn't it be more intuitive if it was: `200` = username is free, `400` = username is taken?  That isn't quite right either, but maybe you see what I mean.

Another possibility is returning a second value in the JSON response:

```javascript
if (err) {
 return  res.json( 500, { error: err || "server error" } );
}

res.json (200, {
  error: null,
  isFree: true/false  // 
});
```
@humphd what do you think?