如何从 node.js 中的 HTML 中的 form/button 接收 POST 数据

How to receive POST data from a form/button in HTML in node.js

我正在做一个充满激情的小项目,到目前为止,我的大部分 js 工作都是在客户端进行的。我现在开始钻研一些服务器端的工作,但我现在有点迷茫。

基本上,我有两个问题。

<form action="/receive" method="post">
  <button class="btn btn-primary results-share-results" data-bs-dismiss="modal">
</form>
  1. 一般来说,我如何采用上面的这种形式并在node.js程序中接收它的POST请求?我认为我的主要挂断就像这个 POST 请求的“去向”。我指的是什么?节点程序中的什么正在接收它?

  2. 更具体地说,对于我的项目,我希望该按钮触发 POST,将我存储在对象中的数据发送到节点脚本。此脚本将接收此数据,然后将其写入 JSON 文件或数据库(我还不完全处于数据库级别,因此 JSON 文件现在就可以了)。

提前致谢!

老实说,我大部分时间都是摸索着浏览一些 YouTube 视频。我可以理解 POST/GET 请求如何作用于 API,但我很难理解这些调用如何作用于本地文件或数据库。

这不是一个简单的问题,但希望我能为您指明正确的方向。首先要知道的是 NodeJS 只有最小的 API。在普通的旧 Node 中编写完整的网络 API 不是我推荐的练习,特别是如果你是后端开发的新手。

为了在Node.js中写一个函数式的API,我推荐你使用像ExpressJS这样的框架。这个框架使用起来非常简单,如果使用 Node.js' native API.

,将会为您节省大量手动操作的工作

express的一个简单例子:

const express = require('express);
const app = express();

app.get('/receive', function(req, res) { 
   //handle your request here.
} );
app.listen(3000);

现在,当您的前端使用 HTTP GET 动词提交上述表单时,节点后端将通过调用作为第二个参数传递给 app.get() 的函数来处理它。 req 参数将包含已发送的数据,res 参数具有可用于将 JSON 回复发送回前端的函数。

请注意,我使用的是 GET 动词而不是 POST。接收一个 post 实际上需要使用 body-parser npm 模块作为中间件。中间件是在调用您的处理程序函数之前根据请求执行操作的函数。由于这个答案不是教程,我将把研究如何使用 body-parser 的工作留给 OP。那里有很多例子。

请记住,您的处理函数必须调用 res.json() 或 res 对象中的其他方法之一来回复客户端,否则,浏览器将“永远”等待(直到请求超时).

奖励:使用节点的 writeFileSync() 将 JSON 文件写入磁盘。不过,对于生产应用程序,请使用此函数的异步版本。

希望这至少能为您指明正确的方向。欢迎来到后台开发!