使用中间件在JSON服务器中添加所有请求

时间:2018-03-29 15:08:05

标签: node.js express json-server

我正在使用https://github.com/typicode/json-server中的JSON服务器包(json-server)。我想使用/api/v2使服务器为所有请求添加前缀。文档甚至给出了如何使用以下内容执行此操作的示例:

server.use('/api', router)

但是,我不想设置自己的服务器实例,而是在运行json-server时扩展默认值。

我可以在中间件中以某种方式使用上述语句吗?

1 个答案:

答案 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。上面未经测试的代码,但应该知道你需要做什么。