注册控制器中的错误非法参数:未定义,字符串

问题描述 投票:0回答:1

我正在按照教程尝试学习 MERN。我已经创建了将数据发送到数据库的函数,但我在数据库中看不到这些数据。代码如下

export const signup = async (req, res) => {
    try {
        const { fullName, username, password, confirmPassword, gender } = req.body;

        if (password !== confirmPassword) {
            return res.status(400).json({ error: "Passwords don't match" });
        }

        const user = await User.findOne({ username });

        if (user) {
            return res.status(400).json({ error: "Username already exists" });
        }
        const salt = await bcrypt.genSalt(10);
        const hashedPassword = await bcrypt.hash(password, salt);


        const boyProfilePic = `https://avatar.iran.liara.run/public/boy?username=${username}`;
        const girlProfilePic = `https://avatar.iran.liara.run/public/girl?username=${username}`;

        const newUser = new User({
            fullName,
            username,
            password: hashedPassword,
            gender,
            profilePic: gender === "male" ? boyProfilePic : girlProfilePic,
        });

        if (newUser) {
            
            generateTokenAndSendCookie(newUser._id, res);
            await newUser.save();

            res.status(201).json({
                _id: newUser._id,
                fullName: newUser.fullName,
                username: newUser.username,
                profilePic: newUser.profilePic,
            });
        } else {
            res.status(400).json({ error: "Invalid user data" });
        }
    } catch (error) {
        console.log("Error in signup controller", error.message);
        res.status(500).json({ error: "Internal Server Error" });
    }
}

当我尝试访问 /api/auth/signup 时,我收到了此消息。

cannot GET /api/auth/signup

也许问题是我使用的是 POST 而不是 GET 请求?

import express from "express";
import { login, logout, signup } from "../contollers/auth.controller.js";

const router = express.Router();

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

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

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

export default router;

但是即使当我尝试发送数据时,我也会收到此错误

Error in signup controller Illegal arguments: undefined, string

通常我不知道在这里做什么

javascript mongodb mern
1个回答
0
投票

尝试安装body-parser

npm install body-parser

之后添加到您的快速申请中

express.use(bodyParser.urlencoded({extended: true}));
const router = express.Router();
© www.soinside.com 2019 - 2024. All rights reserved.