无法获取 /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
我是 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