0
我試圖設置不同的版本,只要我更新節點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我沒有得到任何錯誤或警告。而當我打電話給這個節點的應用程序時,我可以看到這個調用被接收到了,它就好像沒有找到這個調用。
任何想法?
你在那裏使用'app.post'。請求是否「獲得」?如果是這樣,那麼你的應用根本不處理該請求。 –
不是,它的一個職位請求。但好點,但我有時想念的東西。 –
'app.post'調用在'version'之前缺少''/「+'。 – GillesC