NodeJS 我不明白为什么POST请求返回axios 404错误

ibps3vxo  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(114)

axios post请求不断返回404错误,即使路由似乎是正确的。当我添加POST请求时,put请求也停止工作,但在删除POST请求后又恢复正常工作。它一开始工作得很好,所以我可能犯了什么错误,但我找不到任何地方的错误。任何帮助将不胜感激。
这是handleSubmit函数:

const handleSubmit = async e => {
        e.preventDefault()

   const formData = new FormData();
        formData.append('avatar', archivoImagen);
        
 try {

            const datosActualizados = {
                nombre,
                apellido,
                usuarioID,
                email,
                descripcion,
                fechaNacimiento,   
             };          
            
            const { data } = await clienteAxios.put(`/usuarios/perfil/${auth._id}`, datosActualizados)        
           
            const response = await clienteAxios.post(`/usuarios/perfil/avatar`, formData)
                console.log(response)      

            setAlertaVisible(true)
            setAlerta({
                msg: data.msg,
                error: false,
            })
            setTimeout(() => {
                setAlertaVisible(false)
            }, 3000);
        } catch (error) {

这是我创建的routes文件:

import express from 'express';
import checkAuth from '../middleware/checkAuth.js';
import { upload } from '../middleware/multer.js';

import {
    registrar,
    autenticar,
    confirmar,
    olvidePassword,
    comprobarToken,
    nuevoPassword,
    perfil,
    editarPerfil,
    usuarioIdDisponible,
} from '../controllers/usuarioController.js'

const router = express.Router();

router.post("/", registrar)
router.post("/login", autenticar)
router.get("/verificar-usuario", usuarioIdDisponible)
router.get('/confirmar/:token', confirmar)
router.post('/olvide-password', olvidePassword)
router.route('/olvide-password/:token')
    .get(comprobarToken)
    .post(nuevoPassword)
router.get('/perfil', checkAuth, perfil)
router.put('/perfil/:id', editarPerfil);
router.post('/perfil/avatar', upload.single('avatar'));



export default router;

我希望在handleSubmit函数被触发时,POST和PUT请求都能被触发,这样用户就可以通过PUT请求更新配置文件数据,还可以通过POST请求将头像图像发送到项目中的本地文件夹

4nkexdtk

4nkexdtk1#

在upload.single()之后添加一个路由处理程序实际上起作用了!!
最后我用了这个:

router.post('/perfil/avatar', upload.single('avatar'), (req, res)=> {
res.sendStatus(202)
console.log(req.file)

});
非常感谢菲尔。你救了我的命!

相关问题