我正在尝试执行一个基本的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>
答案 0 :(得分:0)
这里有几件事。首先,当有人导航到某个网址时,在您的示例ItemComponent
(仅在您的计算机上有效)中,浏览器向localhost:3000/email-adress
路由发出了GET
请求。我不确定您其余的快速代码是什么,但是您必须要有一条路径来处理此代码,以确保可以为您的表单提供服务。现在,在将表单送达前端的情况下,如果要触发到/email-adress
的{{1}}路由中的代码,则必须通过POST
进行。
我假设您希望这种情况在您提交表格后发生。为此,请通过JavaScript处理表单的提交。摆脱/email-adress
和fetch
属性,然后执行以下操作:
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
那解决了问题!