node.js - 如何将表单从 HTML 发布到 Node.js 文件中

标签 node.js

我有一个名为 index.html 的 HTML 文件和一个名为 server.js 和 logic.js 的 Node.js 文件。

server.js 负责创建服务器和加载 index.html 文件。 HTML 文件显示一个表单,要求执行任何操作(例如:用户名),然后将此数据发布到打印此用户名的 logic.js 文件。

这怎么可能? 谢谢!

最佳答案

好吧,在没有看到您的任何代码或不知道您使用的是什么框架的情况下,很难具体说明,但您会想要

  • 渲染一些包含 HTTP GET 表单的 HTML
    • 这是最简单的部分。只需编写一个带有 a 和一些标签的简单文档。我假设您已经有一些网络服务器可以执行此操作。
  • 监听 POST 请求。
    • 这与 GET 不同,您的服务器可能有不同的函数来处理该请求(因为逻辑不同)。
  • 处理 POST 请求
    • 在这里您只想从 POST 数据中提取名称并打印它(或做任何您想做的事)。

我推荐使用 expressjs为此,因为您可能不想编写处理 Web 服务器的所有代码。有了这个框架,渲染HTMl就像

一样简单
app.get("/", function(request, response) { res.send(some_html); });

处理 POST 就像

一样简单
app.post("/endpoint", function(request, response) { console.log(request.query.name); });

编辑:为了回答您的问题,将处理多个页面的逻辑分散到不同的文件中确实不难。我通常做的是有一个 server.js 来设置所有内容,然后包含处理其他页面逻辑的其他文件。

例如,如果您的应用可能布局如下

server.js
/modules/
/modules/index.js
/modules/user.js
/modules/posts.js
public/index.html
public/user.html
public/posts/html

server.js 将包含模块目录中的所有文件,其中一个可能看起来像

索引.js

app.get("/", function(req, res) {
  render("index.html");
});

用户.js

app.get("/user", function(req, res) {
render("user.html");
});

post.js

app.get("/post", function(req, res) {
render("post.html");
});

关于node.js - 如何将表单从 HTML 发布到 Node.js 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811213/

相关文章:

node.js - node.js 中的 wire.js 示例

node.js - 错误 : Request unsafe for browser client domain: dialogflow.

node.js - 模块中的无限循环不工作

javascript - 在 Node Js 上运行服务器时未定义套接字

node.js - 如何*不*保存 Mongoose 文档?

Node.js - 使用 Express 获取原始请求正文

JavaScript String.replace : how to know that callback function is invoked for last time?

node.js - 只能创建一个 cardNumber 类型的元素

javascript - 在这种情况下需要对 Node.js 中的函数进行阻塞调用吗?

javascript - 存在 Express session 问题的 Node