gpt4 book ai didi

reactjs - jsonserver 不使用重写器重定向

转载 作者:行者123 更新时间:2023-12-05 04:55:07 24 4
gpt4 key购买 nike

我有一个 employees 端点,在我的 db.json 中有一些数据。我正在使用节点 v6.14.9。

我的 server.js 看起来像这样:

// 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(jsonServer.rewriter({
'/api/*': '/$1'
}))
server.use(router)
server.listen(3000, () => {
console.log('JSON Server is running')
})

服务器在端口 3000 上启动。如果我打开 ht tp://localhost:3000/employees,它工作正常。但是,打开 ht tp://localhost:3000/api/employees 会抛出错误 404 not found。有什么建议我做错了吗?

最佳答案

为了防止有人像我一样在这里绊倒,有两种方法可以启动 json-server。并且根据您启动 json-server 的方式将决定您将重写放在何处:

Method one (official docs)正在定义您的 rewritesroutes.json 文件中。您的 routes.json 将如下所示:

routes.json

{
'/api/*': '/$1'
}

然后你可以使用命令启动 json-server,假设 db.jsonroutes.json 在同一个文件夹中:

json-server db.json --routes routes.json

Method two (official docs)正在创建一个 server.js 文件,就像您示例中的文件一样,您将重写的 json 对象传递给 server.use(jsonServer.rewriter()):

server.use(jsonServer.rewriter(
//json object with rewrites
));

请记住,在 server.js 文件中,您的重写必须在 server.use(router) 之前进行。因此,就像在您的示例中一样,您的重写确实看起来像这样:

server.use(jsonServer.rewriter({
'/api/*': '/$1'
}));
server.use(router);

然后服务器将在 server.js 中用这一行启动:

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

因此,要使用 server.js 启动 json-server,您只需使用 node:

node server.js

所以要注意的是,当你使用方法 1 时,json-server 对你在 server.js 中的重写一无所知。

同样,当您使用方法 2 时,json-server 将不知道您在 routes.json 中的重写。因此,您必须选择最适合您需求的那个。

关于reactjs - jsonserver 不使用重写器重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65560532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com