我正在使用https://github.com/typicode/json-server中的JSON服务器包(json-server)。我想使用/api/v2
使服务器为所有请求添加前缀。文档甚至给出了如何使用以下内容执行此操作的示例:
server.use('/api', router)
但是,我不想设置自己的服务器实例,而是在运行json-server
时扩展默认值。
我可以在中间件中以某种方式使用上述语句吗?
答案 0 :(得分:1)
由于json-server
返回的路由器 Express router。
首先在自己的路线文件中定义所有/v1
,/v2
等,如下所示:
// api-routes.js
const express = require('express')
const jsonServer = require('json-server')
const router = express.Router()
const server = jsonServer.create()
const middlewares = jsonServer.defaults()
const v1Router = jsonServer.router('db-v1.json')
const v2Router = jsonServer.router('db-v2.json')
router.use('/v1', v1Router)
router.use('/v2', v2Router)
module.exports = router
然后将您的API路由器安装到/api
上,如下所示:
const express = require('express')
const apiRoutes = require('./api-routes')
const app = express()
app.use('/api', apiRoutes)
// ...
现在应该有/api/v1
和/api/v2
。上面未经测试的代码,但应该知道你需要做什么。