这是我发布路线的代码。我正在使用 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`);