gpt4 book ai didi

javascript - Node js 路由不工作,总是显示无法发布

转载 作者:行者123 更新时间:2023-11-30 20:18:04 25 4
gpt4 key购买 nike

我也提到了一些关于 stackoverflow 的答案,但仍然没有用。当我在 app.js 中使用 app.post 函数时它可以工作,但是当我将路由放入其中时它不起作用并且 postman 说无法发布。它在 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"); });

它在控制台上打印 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;

最佳答案

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

你必须使用 app.use说明功能in express.JS API references .

想想app.use('/signup', signupRoute)作为/signup通用注册功能的命名空间。例如,将来您可能希望通过 /user/create 重用注册功能。这样的路线 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);

关于javascript - Node js 路由不工作,总是显示无法发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51718465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com