我的 Axios 调用返回 404 错误,React/Express
My Axios call is returning a 404 error, React/Express
我正在使用 React 和 Express 尝试在单击按钮后 post 一篇文章 MongoDB。
**server.js**
app.use(express.static("public"));
app.post("/articles/:id", function(request, response){
console.log(request.body);
});
和
**home.jsx**
addToFavorites = article => {
console.log(article);
this.state.savedArticles.push(article);
this.setState(this.state.savedArticles);
axios.post("/articles/" + article.id, {
title: article.title,
summary: article.summary,
writer: article.writer,
date: article.pub_date,
url: article.link
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
控制台打印出文章,因此它不是未定义的,调用会捕获以下错误:
Error: Request failed with status code 404
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:78)
阅读其他 posts,有人提到路径不存在,但我不确定那是什么意思。
任何帮助将不胜感激:)
更新:
我的主要问题是在 yarn 开始之前我没有 运行 节点 server.js。我是 React 的新手,所以我不知道这很重要。
在 package.json 中包含代理也很重要。
如果您 运行 您的 express 服务器端口:8080,
然后在 package.json
中添加以下行
"proxy": "http://localhost:8080"
您可以创建生产版本,而不是在开发版本中工作。
与生产版本相比,在 UI 上渲染开发构建 js 文件需要花费大量时间,生产版本非常紧凑,经过压缩以获得更好的用户体验并在 UI 上加载。
在生产模式下,代码在您客户端的机器上运行,因此这使得在最终用户的浏览器上呈现文件非常快速并提高了性能。
从开发构建更改为生产构建的步骤:
在终端中点击 ctrl + c
退出开发构建。
在您的项目目录中要创建生产版本,请使用 npm run build
。
以上命令编译成功后,使用serve -s build
部署静态服务器
如果您在终端中看到此输出
│ Serving! │
│ │
│ - Local: http://localhost:5000 │
│ - On Your Network: http://172.16.2.1:5000 │
│ │
- 您已成功编译生产版本!
我正在使用 React 和 Express 尝试在单击按钮后 post 一篇文章 MongoDB。
**server.js**
app.use(express.static("public"));
app.post("/articles/:id", function(request, response){
console.log(request.body);
});
和
**home.jsx**
addToFavorites = article => {
console.log(article);
this.state.savedArticles.push(article);
this.setState(this.state.savedArticles);
axios.post("/articles/" + article.id, {
title: article.title,
summary: article.summary,
writer: article.writer,
date: article.pub_date,
url: article.link
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
控制台打印出文章,因此它不是未定义的,调用会捕获以下错误:
Error: Request failed with status code 404
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:78)
阅读其他 posts,有人提到路径不存在,但我不确定那是什么意思。
任何帮助将不胜感激:)
更新:
我的主要问题是在 yarn 开始之前我没有 运行 节点 server.js。我是 React 的新手,所以我不知道这很重要。
在 package.json 中包含代理也很重要。
如果您 运行 您的 express 服务器端口:8080, 然后在 package.json
中添加以下行"proxy": "http://localhost:8080"
您可以创建生产版本,而不是在开发版本中工作。 与生产版本相比,在 UI 上渲染开发构建 js 文件需要花费大量时间,生产版本非常紧凑,经过压缩以获得更好的用户体验并在 UI 上加载。 在生产模式下,代码在您客户端的机器上运行,因此这使得在最终用户的浏览器上呈现文件非常快速并提高了性能。
从开发构建更改为生产构建的步骤:
在终端中点击
ctrl + c
退出开发构建。在您的项目目录中要创建生产版本,请使用
npm run build
。以上命令编译成功后,使用
serve -s build
部署静态服务器
如果您在终端中看到此输出
│ Serving! │
│ │
│ - Local: http://localhost:5000 │
│ - On Your Network: http://172.16.2.1:5000 │
│ │
- 您已成功编译生产版本!