Express 4.0内容协商和应用程序结构

我使用节点Express 4.0为我的Web服务器和restAPI。 我正在使用内容协商来处理多种types的数据,并处理其余API的版本控制。 但是,我的界面开始变得非常混乱。 下面我有一个非常简单的例子来说明我如何使用内容协商(但是我在每个accept头中有更多的代码行。

我的问题是,是否有经验的大型Expressrest应用程序,以及如何构build代码来分离HTTP部分和实际数据处理之间的关注,以避免非常混乱的app.get()app.post()等function以及如何保持整个应用程序的良好的概述?

 'use strict'; var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); var data = [ { id: 0, title: 'This is content 0'}, { id: 1, title: 'This is content 1'}, { id: 2, title: 'This is content 2'}, { id: 3, title: 'This is content 3'} ]; app.get('/data', function(req, res) { res.format({ 'application/vnd.mydata.ids.v1.0+json': function() { var ids = data.map(function(d) { return d.id; }); res.json(ids); }, 'application/vnd.mydata.ids.v1.0+html': function() { var ids = data.map(function(d) { return '<p>' + d.id + '</p>'; }); res.send(ids.join('')); }, 'application/vnd.mydata.all.v1.0+json': function() { res.json(data); }, 'application/vnd.mydata.all.v1.0+html': function() { var all = data.map(function(d) { return '<p>' + d.id + ': ' + d.title + '</p>'; }); res.send(all.join('')); } }); }); app.listen(8080, function() { console.log('Server started'); });