node js,设置路由版本

时间:2015-06-20 11:26:14

标签: javascript node.js

我试图设置不同的版本,无论何时我更新节点js中的路由而不破坏以前的版本。

我正在尝试的事情:

index.js:

...
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.json());
app.use(json());
app.use(authChecker);

require('./routes.js')(app, 'v1');  <-- this line
require('./routes.js')(app, 'v2');  <-- and this line

http.createServer(app).listen(4080);
console.log('Listening on port 4080...');
...

routes.js:

module.exports = function(app, version) {

    console.log("version", version);

    var
    IO_ADU = require('./' + version + '/io-add-or-update.js'),
    IO_ADD = require('./' + version + '/io-add.js'),
    IO_AGG = require('./' + version + '/io-aggregate.js'),
    IO_DEL = require('./' + version + '/io-delete.js'),
    IO_FIN = require('./' + version + '/io-find.js'),
    IO_UPD = require('./' + version + '/io-update.js');

    //calls

    app.post(version + '/find',       IO_FIN.find);
    app.post(version + '/aggregate',  IO_AGG.aggregate);
    app.post(version + '/add',        IO_ADD.add);
    app.post(version + '/update',     IO_UPD.update);
    app.post(version + '/delete',     IO_DEL.delete);
    app.post(version + '/addUpdate',  IO_ADU.addOrUpdateIfExist);
};

调用任何这些路线时得到的响应是:

{protocol=http/1.1, code=404, message=Not Found, url=http://my-ip:4080/v2/addUpdate}

从url和index.js和routes.js中删除版本使其工作。但是,如何使其与版本工作或类似的工作一起使用?

运行index.js时,我没有收到任何错误或警告。当我打电话给这个节点应用程序时,我可以看到收到了呼叫,看起来似乎没有找到溃败。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

就像gillesic在评论中所说的那样,我错过了&#34; /&#34;在版本之前。