我有一个名为 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/