首页 > 解决方案 > POST 路由指示 404 错误 (EXPRESS)

问题描述

在我的 POST 路由上出现 404 错误,这是我在 auth.js(路由)文件中所做的:

const express = require('express');
const router = express.Router();
const connection = require('../../helpers/db.js'); 

const bodyParser = require("body-parser");


router.use(bodyParser.json());
router.use(bodyParser.urlencoded({
    extended: true
 }));

 //create a new user


  router.post('/signup', function (req, res) {
    const insert = `INSERT INTO users ( email, password, name, lastname) values ('${req.body.email}', '${req.body.password}','${req.body.name}', '${req.body.lastname}' )`
    connection.query(insert, function (err, result) {
          if(err) {
             console.log('mysql error', error);
             res.status(500);
             res.send(error);
          } else {                  
           console.log('a new user was added!');
           res.send('Congrats, new user!');
         }
       })
     });


module.exports = router;

这是我的 app.js 文件:

const http = require("http");
const path = require("path");
const express = require("express");
const bodyParser = require("body-parser");
const morgan = require("morgan");
const app = express();
const authRouter = require("./routes/auth/auth");



// Configuring the app

app.use(morgan("dev"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(__dirname + "/public"));

app.use("/signup", authRouter); 

//starting node server

const server = app.listen(process.env.PORT || 3001, function(err) {
    if(err) throw err;
    console.log("Listening on port " + server.address().port);
  });

如果我将路由更改为 GET,它可以正常工作,但是一旦我执行 POST 路由,它就会一直告诉我邮递员有一个 404 错误,我尝试了很多事情,但我现在卡住了!我是这里的初学者:)

标签: node.jsexpressrouter

解决方案


我认为您在路由中添加了前缀,因此路由是 /signup/signup

尝试改变这一点

app.use("/signup", authRouter); 

对此

app.use(authRouter); 

推荐阅读