【发布时间】:2025-12-06 04:25:01
【问题描述】:
我有使用 ExpressJs 开发的不同版本的 api,我通过标题或通过像 example.com/users?version=1 和 example.com/users?version=2 这样的查询字符串获取版本详细信息
或者我进入标题。
我想通过我通过 url 获得的查询参数路由我的应用程序 api
app.js
app.use('/', (req, res, next) => {
app.use(require('./v'+req.query.version));
next();
});
我在文件夹v1/index.js中有两个版本
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World! v01')
});
module.exports = app;
和v2/index.js 一样
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World! v02')
});
module.exports = app;
当我通过 url 调用 api 时,我只会得到我首先调用的版本的响应
如果我第一次打电话给example.com/users?version=1,我会得到'Hello World! v01'的回复,
之后如果我打电话给example.com/users?version=2,我会得到'Hello World! v01'的回复
如果我在启动脚本后第一次调用 version=2,我每次都会收到 'Hello World! v02' 响应。
我不希望有像example.com/v1 这样的应用程序是他们使用查询参数或通过标头解决此版本问题的任何方式。
【问题讨论】:
标签: javascript node.js express