节点 js 路由不工作,总是显示不能 post

Node js route not working,always shows cannot post

我也提到了一些关于 Whosebug 的答案,但仍然没有用。当我在 app.js 中使用 app.post 函数时它可以工作,但是当我将路由放入其中时它不起作用并且 post 人说不能 post。它在 1 天前工作正常。
这是app.js

的代码
let express=require("express");
let app=express();
let signuproute=require("./routes/signup");
app.listen(3000,function(req,res){
console.log("server started");

});

app.get("/",function(req,res){

  console.log("home page called");
  res.send({message:"Thanks for calling home page"});
});

app.post("/signup",signuproute);

上面的注册路径不起作用但是当我直接传递其中的函数时

 app.post("/signup",function(req,res){ console.log("signed up"); });

它在控制台上打印已注册。那么为什么路由不起作用。

这是我注册的路线,signup.js:

let express=require('express');
let router=express.Router();

console.log("Signup called");
router.get("/",function(req,res){

});
router.post("/",function(req,res,next){

  res.send({message:"thank you for signing up"});
});
module.exports=router;

app.post ('/signup')app.get ('/') 两种情况下,使用 app.use ('/signup')app.use ('/home') 由于您使用单独的路由文件进行注册例程,因此也使用一个路由文件进行家庭路由。

let express=require("express");
let app=express();

let signuproute = require("./routes/signup");
let homePageRoute = require("./routes/homePageRoute"); // define a home page route 

app.listen(3000,function(req,res){
console.log("server started");

});

app.use("/signup", signuproute);
app.use("/home", homePageRoute); // use created home page route

router.post 已经包含一个 post 方法,在这种情况下使用 app.post 而不是 app.use 方法。


app.use('/signup',signuproute);

Signup 路由包含您在 signup.js 中编写的任何方法,都可以在 /signup 路由中访问。

问题是您已经在 routes/signup.js 文件中定义了一个 post 路由处理程序。因此写 app.post(router.post(function (req, res, next) {}).

是没有意义的

您必须按照 in express.JS API references 所述使用 app.use 功能。

app.use('/signup', signupRoute) 视为通用注册功能的 /signup 命名空间。例如,将来您可能希望通过 /user/create 路由重用 SignUp 功能,例如 app.use('/user/create', signupRoute).

您的示例应如下所示:

let express = require("express");
let app = express();
let signupRoute = require("./routes/signup");

app.listen(3000, function(req, res) {
  console.log("server started");
});

app.get("/",function(req,res){  
  console.log("home page called");
  res.send({message:"Thanks for calling home page"});
});

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