我为我的注册创建了一个路由和控制器。
这是我的路线:
const express = require("express");
const router = express.Router();
const { signup } = require("../../controllers/auth");
router.post("/signup", signup);
module.exports = router;
这是我的控制器:
exports.signup = () => (req, res) => {
const { name, email, password } = req.body;
res.json({
user: { name, email, password },
});
};
在我的 server.js 文件中,我同时注册了两个:
const express = require("express");
const morgan = require("morgan");
const cookieParser = require("cookie-parser");
const cors = require("cors");
const mongoose = require("mongoose");
require("dotenv").config();
// routes
const blogRoutes = require("./routes/blog");
const authRoutes = require("./routes/auth");
// app
const app = express();
// db
mongoose
.connect(process.env.DATABASE, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log("DB connected!"));
// middlewares
app.use(morgan("dev"));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(cookieParser());
// cors
if (process.env.NODE_ENV == "development") {
app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}
// routes middleware
app.use("/api", blogRoutes);
app.use("/api", authRoutes);
// port
const port = process.env.PORT || 8000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
现在在我的 POSTMAN 上,我尝试使用带有标题和原始设置的 POST http://localhost:8000/api/signup
来放置数据。
{
"name": "SyRyan",
"email": "syryan@gmail.com",
"password": "brace1010"
}
数据库已连接,但邮递员需要很长时间才能将 json 请求加载回来。我在这里犯了什么错误吗?请帮忙!
答案 0 :(得分:0)
我认为问题在于 signup
是一个返回函数的函数,但它应该只是一个接收 req
& res
作为参数的函数:
exports.signup = (req, res) => {
const { name, email, password } = req.body;
res.json({
user: { name, email, password },
});
};