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

时间:2015-02-21 18:02:51

标签: node.js rest express

我正在使用节点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');
});

0 个答案:

没有答案