我正在使用节点Express 4.0作为我的Web服务器并休息api。我正在使用内容协商来处理多种类型的数据并处理其余API的版本控制。但是,我的界面开始变得非常杂乱。下面我有一个非常简单的例子来说明我如何使用内容协商(但我在每个接受标题中有更多的代码行。
我的问题是,有没有大型Express休息应用程序的经验,以及如何构建代码以分离HTTP部分和实际数据处理之间的关注点,以避免非常混乱app.get()
,app.post()
,等功能以及如何保持对整个应用程序的良好概述?
'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');
});