【问题标题】:Prefix all requests in JSON Server with middleware使用中间件为 JSON Server 中的所有请求添加前缀
【发布时间】:2018-09-08 14:40:23
【问题描述】:

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

server.use('/api', router)

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

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

【问题讨论】:

    标签: node.js express json-server


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

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 2016-11-22
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多