无法获取 /api/signup - 使用 Postman 和 mongodb

Cannot GET /api/signup - Using Postman and mongodb

我是 mongoose 的新手,我注册了一个 api,在使用 POSTMAN 测试它时,当我刷新我的 http://localhost:8000/api/signup 时,我也遇到了这些奇怪的错误,我收到一条消息说"Cannot GET /api/signup" 在我的 postman post 请求中,我看到一条错误消息,上面写着 "Cannot POST /api/signup".

我如何摆脱显示的这些消息?

我正在学习教程,所以我尝试从 GitHub 复制并粘贴代码以确保一切完美,但我仍然看到这些错误消息。

我的 app.js 文件是:


    const express = require("express");
    const mongoose = require("mongoose");
    const morgan = require("morgan");
    const bodyParser = require("body-parser");
    const cookieParser = require("cookie-parser");
    require("dotenv").config();

    // import routes
    const userRoutes = require("./routes/user");

    // app
    const app = express();

    // db
    mongoose
        .connect(process.env.DATABASE, {
            useNewUrlParser: true,
            useCreateIndex: true
        })
        .then(() => console.log("DB Connected"));

    // middlewares
    app.use(morgan("dev"));
    app.use(bodyParser.json());
    app.use(cookieParser());

    // routes middleware
    app.use('api', userRoutes);

    const port = process.env.PORT || 8000;

    app.listen(port, () => {
        console.log(`Server is running on port ${port}`);
    });

我的 routes/users.js 文件是:


    const express = require("express");
    const router = express.Router();

    const { signup } = require("../controllers/user");

    router.post("/signup", signup);

    module.exports = router; 

我的 controllers/users.js 是:


    const User = require("../models/user");

    exports.signup = (req, res) => {
        console.log("req.body", req.body);
        const user = new User(req.body);
        user.save((err, user) => {
            if (err) {
                return res.status(400).json({
                    error
                });
            }
            res.json({
                user
            });
        });
    };

我希望在我的浏览器中看到一个响应,该响应不显示显示无法获取 api/signup 的图像,我希望 Postman 能够 return 来自我的 api

表示没有对应的路由器设置/api/signup

我觉得router.post("/signup", signup);应该是router.post("/api/signup", signup);

这在 PostMan 上应该可以正常工作。

但是浏览器url是一个get请求,所以请求还是会失败。您需要在 javascript 之前发送 post 请求。

例如:

fetch('/api/signup', {
  method: 'POST',
  body: 'signup data here'
})
.then(response => response.json());

如果错误仍然存​​在,请告诉我。

有一个小错误

app.use('api', userRoutes);

改为

app.use('/api', userRoutes);

我的问题是,当我在本地安装 mongoDB 时,我没有正确安装它并且没有使用 /data/db 文件夹。我能够完全卸载旧版本的 mongoDB 并按照这个 youtube 教程重新安装所有内容:https://www.youtube.com/watch?v=MIByvzueqHQ