发布路由不适用于用户注册

时间:2021-03-21 00:11:28

标签: node.js mongodb express

这是我发布路线的代码。我正在使用 registerPost 将新用户发布到 mongoDB 数据库。制作一个用户架构。我的 registerPost 函数的代码似乎没有运行。

export const registerPost = async (req, res) => {
    
    const {username, password} =  req.body;
    
    const newUser = new User({username, password});

    try {
        await newUser.save();
        console.log(newUser);

        res.status(201).json(newUser);
    } catch (error) {
        res.status(409).json({ message: error.message });
    }


}

这些是路线。我无法在表单提交时获得 /auth。没有控制台日志没有任何东西。我遗漏了一些东西,但不确定。

import express from 'express';

import { getPosts } from '../controllers/posts.js'
import { createPost, updatePost, deletePost, registerPost } from '../controllers/posts.js'

const router = express.Router();

router.get('/', getPosts);
router.post('/', createPost);
router.patch('/:id', updatePost);
router.delete('/:id', deletePost);
router.post('/auth', registerPost);

export default router;

这是注册部分的反应表单代码。

import React, { useEffect, useState } from 'react';
import { TextField, Button, Typography, Paper } from '@material-ui/core';
import useStyles from './styles.css';

const Auth = () => {

    const [username, setUsername] = useState('')
    const [password, setPassword] = useState('')

    const divStyle = {
        backgroundColor: 'white',
      };

    return (
        <div style = {divStyle}>
            <form>
            <h1>Registration</h1>
            <TextField 
                name='username' 
                variant='outlined' 
                label='username' 
                fullWidth 
                
                onChange={(e) => { 
                    setUsername( e.target.value)
                }}
             />
             <TextField 
                name='password' 
                variant='outlined' 
                label='password' 
                fullWidth 
                
                onChange={(e) => { 
                    setPassword( e.target.value)
                }}
             />
             <Button variant="container" color="primary" size="large" type="submit" fullwidth>Register</Button>
            </form>
        </div>
      );
}
 
export default Auth;

API 文档

import axios from 'axios';

const url = 'http://localhost:5000/posts';

export const fetchPosts = () => axios.get(url);
export const createPost = (newPost) => axios.post(url, newPost);
export const updatePost = (id, updatedPost) => axios.patch(`${url}/${id}`, updatedPost);
export const deletePost = (id) => axios.delete(`${url}/${id}`);
export const likePost = (id) => axios.patch(`${url}/${id}/likePost`);

0 个答案:

没有答案