json-server 使用中间件添加只读路由

json-server add read-only route with middleware

在我的 json 服务器设置中,我想设置一个只读路由。

因此,我没有在 db.json 文件中设置该路由,而是使用了一个中间件(名为 middleware.js):

module.exports = (req, res, next) => {
  if (req.url === '/authenticate') {
    res.body = {
      some_property: "some_value"
    };
    console.log("triggered!!!");
  }
  next();
};

所以我 运行 它给出:

json-server --watch db.json --middlewares middleware.js

问题是,尽管触发了 if 块并且我可以看到 console.log 消息,但响应的正文将始终为空。

我使用以下方法解决了我的问题:

module.exports = (req, res, next) => {
  if (req.url === '/authenticate') {
    res.send({
      some_property: "some_value"
    });
  } else {
    next();
  }
};