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 块下面的代码。

更新于: 2020年5月13日

1K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始
广告