Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
POST route not found, React and express

When trying to use the sign-up route I have the following error : POST http://localhost:3001/sign-up 404 (Not Found) I went through similar question on StackOverflow but didn't find where my problem came from...

In the frontend part I'm fetching the POST route 'sign-up' but it seems it can't find it while in the back I have the same name for the route POST, all is well imported in the app.js in back. I check everything I knew and still haven't find a solution.

Here's part of my code, let me know if you need anything else.

React : Home.js

import React, {useState} from 'react';

function Home(props) {
  const [signUpEmail, setSignUpEmail] = useState('')

  var handleSubmitSignup = async () => {
    const data = await fetch('/sign-up', {
      method: 'POST',
      headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      body: `email=${signUpEmail}`
    })
  }

  return (
        <Box>
           <Input onChange={(e) => setSignUpEmail(e.target.value)}/>
           <Button onClick={() => handleSubmitSignup()}>
              Sign-up
           </Button>
        </Box>
  );
}
export default Home

Express : app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');

require('./models/connection')

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'reactapp/build')));

app.use('/', indexRouter);

app.use(function(req, res, next) {
  next(createError(404));
});

app.use(function(err, req, res, next) {
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

Express/routes: index.js

var express = require('express');
var router = express.Router();
var userModel = require('../models/users')

router.post('/sign-up', async function(req,res,next){
    var newUser = new userModel({
      email: req.body.email,
    })  
    saveUser = await newUser.save()
  }
  
  res.json({saveUser})
})

module.exports = router;

Thanks for your help !

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

In your app.js you are defining your user router like this

app.use('/users', usersRouter);

If you do this, then your route would be http://localhost:3001/users/sign-up not http://localhost:3001/sign-up. That's why you are getting 404 error

In your react app update

const data = await fetch('users/sign-up', { /* Rest of the code */ })
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda