How do I generate JSON with ExpressJS/RailwayJS (Node.JS)

18.5k Views Asked by At

I was exploring developing in Node.JS and found ExpressJS and RailwayJS (based on Express) which are frameworks for Node. The templating engine used Jade/EJS appears to be more for HTML. How might I generate JSON, eg. when I develop an API

2

There are 2 best solutions below

0
On BEST ANSWER

You just create normal JavaScript objects, for example:

var x = {
    test: 1,
    embedded: {
        attr1: 'attr',
        attr2: false
    }
};

and

JSON.stringify(x);

turns it into JSON string. Note that x may contain functions which will be omitted. Also JSON.stringify returns x.toJSON() if .toJSON() is available.

0
On

Express and Railway both extend off the HTTP module in node and both provide a "response" object as the second argument of the route/middleware handler's callback. This argument's name is usually shortened to res to save a few keystrokes.

To easily send an object as a JSON message, Express exposes the following method:

res.json({ some: "object literal" });

Examples:

app.use(function (req, res, next) {
  res.json({ some: "object literal" });
});

// -- OR -- //

app.get('/', function (req, res, next) {
  res.json({ some: "object literal" });
});

Check out the docs at expressjs.com and the github source is well documented as well