你有几种不同的方法来解决你的问题。
以下是最简单的方法:
你可以像你在示例中展示的那样直接使用 HTML 表单。但你需要了解它在幕后所做的事情。所以我会给你一个快速的解释。
这是你需要编写的基本 HTML 文件:
<!DOCTYPE html>
<html>
<body>
<form action="/your-node-server-route-name" method="POST">
<input name="give-me-a-name" type="text" />
<button type="submit">Send This Bad Boy To The Server</button>
</form>
</body>
</html>
所以这是在发生什么。在
form
标签中,
action
定义了您希望将从用户那里收集到的数据发送到哪个位置。这是处理此数据的路由的URL,该路由在您的节点服务器上设置(注意:这可以是任何服务器,不仅仅是节点)。因此,如果您有一个正在运行的服务器位于
http://localhost:3000
,并且处理此数据的路由是
/handle-form-data
,则您应将其写为
action="http://localhost:3000/handle-form-data"
就像这样。如果您的节点服务器也提供此HTML页面,则可以使用相对路径指向您的路由,如
action="/handle-form-data"
。
method
定义了提交表单时要使用的HTTP方法。对于
发送数据,您要使用
POST
方法。因此,我们编写
method="POST"
来让节点服务器知道我们正在进行post请求。如果您使用Express作为Web服务器框架,则需要配置路由以处理post请求,如下所示:
app.post("/handle-form-data", (req, res) => {
})
在
form
内部嵌套的
input
标签用于收集用户输入。您必须为数据分配一个
name
属性,以便在服务器上识别这个数据片段。您可以随意赋予它任何名称。例如,如果您想收集用户的生日,则写入
name="user-birthday"
。
type="text"
只是告诉浏览器呈现某种类型的样式。
最后,
button
标签允许用户将表单发送到您的服务器。为按钮设置
type="submit"
,告诉浏览器当用户单击按钮时应该发送表单。
...............................................
就是这样!这就是处理表单的基础知识。
但请注意,这种简单方法存在很多缺点,您可能需要在未来加以解决。为此,建议查看Javascript中使用的
fetch()
方法,或使用像
Axios
这样的库。它们会让您的生活变得更加轻松。