当前位置: 首页 > 知识库问答 >
问题:

开机自检 http://localhost:3001/createPost 404(未找到)快递

邴姚石
2023-03-14

我正在尝试通过Axios将数据从使用React创建的页面传递到由Express服务器管理的Mongo数据库。保存到数据库适用于用户,但对于帖子,我会收到这些错误消息:

POST http: // 本地主机: 3001 / 创建帖子 404 (未找到)

未捕获(promise)错误:请求失败,状态代码404在createError(createError.js:16)在结算(settle.js:17)在XMLHttpRequest.onloadend(xhr.js:66)

有人能帮我吗?我将附上下面的代码。

App.jsx

function App(){
  return (
      <Router>
        <Route path="/" exact>
          <Home />
        </Route>

        <Route path="/new">
          <NewPostFromHome />
        </Route>
    </Router>
  );
}

index.js(服务器)

const app = express();
app.use(cors());
app.use(express.json());

//Database connection
mongoose.connect("mongodb://localhost:27017/codingWaifus", {useNewUrlParser: true}, function(err, db){
  if(err){
    console.log(err);
  }
  else{
    console.log("Connected to "+mongoose.connection.name+" on Port: "+mongoose.connection.port);
  }
});
mongoose.connection.on('error', console.error.bind(console, 'MongoDB connection error:'));

app.use("/", require("./routes/userRoute"));
app.use("/new", require("./routes/postRoute"));

app.listen(3001, () => {
  console.log("running on port 3001");
});

postModel.js

const mongoose = require("mongoose");

const postsSchema = {
  title: String,
  body: String
}

const Post = mongoose.model("Post", postsSchema);

module.exports = Post;

postRoute.js

const express = require("express");
const router = express.Router();
const Post = require("../models/postModel");

router.route("/createPost").post((req, res) => {
  const title=req.body.title;
  const body=req.body.body;
  const newPost = new Post({
    title,
    body
  });
  newPost.save();
})

module.exports = router;

共有1个答案

公羊安怡
2023-03-14

似乎您的问题是postRoute位于

app.use("/new", require("./routes/postRoute"));

在这里,您可以看到您使用了“/new”路由,因此最终URL将是

http: // 本地主机: 3001 / 新建 / 创建帖子

如果使用此Url,它应该可以正常工作

或者,您也可以删除“新”一词,只保留以下内容:

app.use("/", require("./routes/postRoute"));

有关此内容的更多详细信息,请查看此中间件快速文档:https://expressjs.com/en/guide/using-middleware.html

 类似资料:
  • 我正在使用http代理中间件将表单数据从React前端发送到Express server, 但是似乎不起作用 它应该代理 而是抛出一个错误: 邮递http://localhost:3000/api/sendMail404(未找到)。 前端代码: 设置代理。js: 服务器js:

  • 我正在尝试将数据从Spring Boot应用程序获取到Angular应用程序。 我的角度组件具有以下代码: 我的Spring boot controller具有以下代码: 然而,当我运行这个应用程序时,我得到了一个404错误,如下图所示:

  • 问题内容: 我正在尝试将数据流式传输到浏览器。但是,我正在努力将其连接到浏览器。这是我的html: 这是我的app.js的相关部分: 我通过packages.json文件安装了socket.io 0.9.16: 有谁可以帮我离开这里吗?为什么找不到文件? 深入挖掘。为了测试套接字,我将其放在app.js中: 我得到错误: 问题答案: 你可以尝试一下: 我想,您将不得不实例化socket.io服务器

  • 我怎么解决这个问题? http://localhost:3000/favicon.ico404(未找到) 服务器有此错误消息: 找不到404错误:在D:\nodetour\app中找不到。第二层的js:82:13。句柄[作为句柄\u请求](D:\nodetour\node\u modules\express\lib\router\layer.js:95:5)位于trim\u前缀(D:\nodeto

  • 前面提到,服务器通电后,会直接进入 BIOS,BIOS 全称 Basic Input/Output System,中文可译为基本输入/输出系统。 简单地理解 BIOS,它就是固化在主板上一个 ROM(只读存储器)芯片上的程序,主要保存计算机的基本输入/输出信息、系统设置信息、开机自检程和系统自启动程序,用来为 计算机提供最底层和最直接的硬件设置与控制。 也就是说,BIOS 是硬件与软件之间的接口,

  • 我对Tomcat这玩意儿真的很陌生。我下载了Tomcat7.0 windows installer并使用默认配置安装了它。安装后,我在浏览器中键入localhost:8080,查看Tomcat是否工作。但是,它显示了这样的错误消息:Access error:404--Not Found不能定位文档:/并且页面中没有Tomcat或Apache单词显示任何其他内容。看来Tomcat没有反应。 我谷歌搜