返回

json-server进阶

前端

现在访问http://localhost:3000/list会看到动态生成了1000条数据,这跟咱们手动在json文件里写1000条数据效果一样,但肯定没有这么方便。还好json-server支持使用js动态生成的json格式数据。虽然我们使用js动态生成了一些数据,但是这似乎还不能满足我们的需求,那么如何自定义路由呢?别着急,json-server也可以做到。

json-server 提供了一个名为 router 的方法,该方法可以让你为你的 RESTful API 定义自定义路由。让我们创建一个名为 /custom 的自定义路由,该路由将返回一个简单的 JSON 对象:

// db.json
{
  "custom": {
    "message": "Hello, world!"
  }
}
// server.js
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()

server.use(middlewares)
server.use(router)
server.listen(3000, () => {
  console.log('JSON Server is running')
})

现在,当我们访问 http://localhost:3000/custom 时,我们将看到以下 JSON 对象:

{
  "message": "Hello, world!"
}

接下来,我们来扩展json-server的功能。json-server提供了一个名为 middlewares 的方法,该方法可以让你在请求处理过程中添加自定义中间件。

// server.js
const jsonServer = require('json-server')
const server = jsonServer.create()
const router = jsonServer.router('db.json')
const middlewares = jsonServer.defaults()

// 添加自定义中间件
server.use((req, res, next) => {
  console.log('Request received:', req.method, req.url)
  next()
})

server.use(middlewares)
server.use(router)
server.listen(3000, () => {
  console.log('JSON Server is running')
})

现在,当我们发送一个请求到json-server时,我们将在控制台中看到一条日志,该日志记录了请求的方法和URL。

在开发过程中,这个功能也许并不起眼,但是,如果你想自己开发一个类似json-server的服务器端,那么这个功能是非常有用的。

这样,我们就可以使用json-server动态生成json数据,自定义路由,以及扩展json-server的功能,从而满足我们不同的需求。