Node.js 中的路由请求
路由 HTTP 请求非常重要,因为我们希望根据请求 URL 执行不同的业务规则,并且每个路由的响应将不同。
之前我们看到,我们可以通过 request.url 在 Node 中获取 URL。下面显示了一个简单的带有路由的用户姓名输入示例:
const http = require('http'); const server = http.createServer((req, res)=>{ const url = req.url; if(url === '/'){ res.write('<html>'); res.write('<head> <title> Hello TutorialsPoint </title> </head>'); res.write(' <body> <form action="/username" method="POST"> <input type="text" name="user"/> <button type="submit">Submit</button> </body>'); res.write('</html>'); return res.end(); } }); server.listen(3000);
在终端上运行:node App.js
打开浏览器并导航到 localhost:3000/,您将看到以下输出:
我们检查了 URL 是否与 ‘/’ 匹配,然后仅向客户端发送响应以显示带有提交按钮的输入框。在代码中,我们使用了 return res.end() 来避免在调用 end() 函数后对响应对象进行任何更改。
如果 URL 与 ‘/’ 不同,则我们可以显示其他消息。我们使用了表单 action ‘/username’ 并且方法为 post。我们还有一个名称属性为 user 的输入框。此名称属性将在 post 请求中传递以供进一步使用。
完整的 App.js 文件如下:
const http = require('http'); const server = http.createServer((req, res)=>{ const url = req.url; if(url === '/'){ res.write('<html>'); res.write('<head> <title> Hello TutorialsPoint </title> </head>'); res.write(' <body> <form action="/username" method="POST"> <input type="text" name="username"/> <button type="submit">Submit</button> </body>'); res.write('</html>'); return res.end(); } res.write('<html>'); res.write('<head> <title> Hello TutorialsPoint </title> </head>'); res.write(' <body> Hello </body>'); res.write('</html>'); res.end(); }); server.listen(3000);
输入用户名并点击发送后的输出屏幕:
我们可以在这里看到,URL 更改为 /username,这是因为我们在之前的响应中添加了表单 action。
在第二个 res.end() 中,我们没有添加 return 语句,因为之后没有代码,所以我们不需要担心它。
使用 URL /username,我们的代码不会执行包含表单输入代码的 if 块,而是会执行 if 块下面的代码。
广告