Reputation: 62906
I have a growing node.js server application, and I'd like to get it split into several files. Here is a working code snippet demonstrating what monolithic server.js roughly looks like:
var express = require('express');
var app = express();
// other initialization code etc
//************** start of part to be moved foo.js
var fooTestData = {data: "data", id:1};
app.get("/foo/ajax", function(req, res) {
res.json(fooTestData);
});
// more REST stuff and other foo-specific code
//************** end of part to be moved
// more stuff which remains in server.js
// http://localhost:8888/foo/ajax
app.listen(8888);
An ideal answer has two pieces of code with identical functionality: What server.js looks like after moving the indicated part, and what foo.js looks like with copied code and any needed extra code.
Upvotes: 4
Views: 1887
Reputation: 3470
I recommend you to have a look at some express-based (MVC) frameworks. Have a look at the list of frameworks. Moreover, you might want to check sails.js (express based framework) if you are doing a webservice and communicating with it via RESTfull requests. Please note that sails is not limited to RESTfull requests and can help you scale your project out of the box.
Good luck!
Upvotes: 1
Reputation: 817
foo.js
var fooTestData = {data: "data", id:1};
exports.setApp = function (app) {
app.get("/foo/ajax", function(req, res) {
res.json(fooTestData);
});
// more REST stuff and other foo-specific code
};
new sever.js
var express = require('express');
var app = express();
require('./foo.js').setApp(app);
// other initialization code etc
// more stuff which remains in server.js
// http://localhost:8888/foo/ajax
app.listen(8888);
It's a simple example. If you need some things more complex you may want to take a look to other express program on github. It could be a good source of inspiration.
Upvotes: 7