Express JS POST请求

时间:2019-06-21 10:26:29

标签: javascript html express routing

我正在尝试执行一个基本的POST请求,该请求将电子邮件地址存储在一个变量中,然后在控制台中显示它。该页面的URL是:http://localhost:3000/email-adress(我知道它缺少额外的d地址)。

出于某种原因,代码无法正常工作吗?

快递

const express = require('express')
const router = express.Router()

router.post('/email-adress', (req, res) => {
  var email = req.body.email
  console.log(email)
})

module.exports = router

HTML

<form action="/finished" method="post">
<label class="" for="email">Email address</label>
<input class="" id="email" name="email" type="text">
<button type="submit" class="">Continue</button>  
</form>

2 个答案:

答案 0 :(得分:0)

这里有几件事。首先,当有人导航到某个网址时,在您的示例ItemComponent(仅在您的计算机上有效)中,浏览器向localhost:3000/email-adress路由发出了GET请求。我不确定您其余的快速代码是什么,但是您必须要有一条路径来处理此代码,以确保可以为您的表单提供服务。现在,在将表单送达前端的情况下,如果要触发到/email-adress的{​​{1}}路由中的代码,则必须通过POST进行。

我假设您希望这种情况在您提交表格后发生。为此,请通过JavaScript处理表单的提交。摆脱/email-adressfetch属性,然后执行以下操作:

action

现在,提交表单后,您应该会在服务器上看到method

答案 1 :(得分:0)

感谢Jaxi,我已经找到了答案。我正在做的是在/ email-adress而不是/ finished上进行POST,因此我将Express代码修改为:

const express = require('express')
const router = express.Router()

router.post('/finished', (req, res) => {
  var email = req.body.email
  console.log(email)
  res.render('finished')
})

module.exports = router

那解决了问题!

相关问题