繁体   English   中英

节点js,设置路由版本

[英]node js, setting up versions of routes

每当我在不破坏先前版本的情况下更新节点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...');
...

route.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和route.js中删除版本即可正常工作。 但是如何使它与版本工作或类似功能一起工作?

运行index.js时,我没有任何错误或警告。 当我调用此节点应用程序时,我可以看到已收到呼叫,似乎找不到路由。

有任何想法吗?

就像gillesic在评论中指出的那样,我错过了版本之前的“ /”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM