两个帖子路由可以在express nodejs中具有相同的表单操作URL吗?

时间:2018-04-14 09:21:22

标签: node.js express

假设我有一个允许用户提交帖子的博客 新帖子链接是/ new 以下是邮政路线逻辑

   //NEW POST LOGIC
router.post("/", function(req, res) {
  var data = {title : req.body.title, image: req.body.image, content: req.body.content};
    Blog.create(data, function(err, blogPost) {
        if(err){
            res.send("error");
        } else {
            res.redirect("/");
        }

    });
});

这次我可以为用户登录创建另一个帖子路由 登录页面是/ login 行动是一样的 -

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

................ });

如果不是这样会导致什么问题呢?

1 个答案:

答案 0 :(得分:1)

在快递

中创建路线时,您有2个选项

1 - 为同一路径创建不同的HTTP方法

示例:

app.GET('/login',(req,res)=>{ res.send("Get the login page"); });
app.POST('/login',(req,res)=>{ res.send("POST the login page data"); });

2 - 为不同的路线创建不同的HTTP方法

示例:

app.GET('/profile',(req,res)=>{ res.send("Get the profile page"); });
app.GET('/home',(req,res)=>{ res.send("GET the home page"); });

app.POST('/contact-Form',(req,res)=>{ res.send("POSTthe contact form page"); });
app.POST('/register',(req,res)=>{ res.send("POST the register page data"); });

您不能对同一路径使用相同的HTTP方法

实施例

app.GET('/login',(req,res)=>{ res.send("FIRST GET METHOD"); });
app.GET('/login',(req,res)=>{ res.send("SECOND GET METHOD"); });

app.POST('/login',(req,res)=>{ res.send("FIRST POST METHOD"); });
app.POST('/login',(req,res)=>{ res.send("SECOND POST METHOD"); });

希望这有助于:)