📜  Node.js 中的路由

📅  最后修改于: 2022-05-13 01:56:52.567000             🧑  作者: Mango

Node.js 中的路由

什么是路由?
路由定义了应用程序端点处理客户端请求的方式。

在 Node.js 中实现路由:在 node.js 中实现路由有两种方法,如下所示:

  • 通过使用框架
  • 不使用框架

使用框架: Node 有许多框架可以帮助您启动和运行服务器。最受欢迎的是 Express.js。
在 Node 中使用 Express 进行路由: Express.js 有一个对应于 HTTP 的“app”对象。我们使用这个“app”对象的方法来定义路由。这个 app 对象指定了一个回调函数,当收到请求时调用它。对于不同类型的请求,我们在 app 对象中有不同的方法。

  • 对于 GET 请求,使用 app.get() 方法:
    var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.send('Hello Sir')
    })
    
  • 对于 POST 请求,使用 app.post() 方法:
    var express = require('express')
    var app = express()
    
    app.post('/', function(req, res) {
        res.send('Hello Sir')
    })
    
  • 要处理所有 HTTP 方法(即 GET、POST、PUT、DELETE 等),请使用 app.all() 方法:
    var express = require('express')
    var app = express()
    
    app.all('/', function(req, res) {
        console.log('Hello Sir')
        next()   // Pass the control to the next handler
    })
    

next() 用于将控制权移交给下一个回调。有时我们使用 app.use() 来指定中间件函数作为回调。

因此,要使用 Express.js 执行路由,您只需加载 express,然后根据要求使用 app 对象处理回调。

没有框架的路由:使用框架可以节省时间,但有时这可能不适合这种情况。因此,开发人员可能需要构建自己的服务器,而无需其他依赖项。
现在使用 .js 扩展名创建一个任意名称的文件,并按照以下步骤从头开始执行路由:

  • 这里我们将使用 node.js 的内置模块,即 http。所以,首先加载http:
    var http = require('http');
  • 现在通过添加以下代码行来创建服务器:
    http.createServer(function (req, res) {
        res.write('Hello World!'); // Write a response
        res.end(); // End the response
    }).listen(3000, function() {
        console.log("server start at port 3000"); // The server object listens on port 3000
    });
  • 现在在上面的函数中添加以下代码行来执行路由:
    var url = req.url;
    if(url ==='/about') {
        res.write(' Welcome to about us page'); 
        res.end(); 
     } else if(url ==='/contact') {
        res.write(' Welcome to contact us page'); 
        res.end(); 
     } else {
        res.write('Hello World!'); 
        res.end(); 
     }
    

示例:结合以上代码的完整路由代码。

var http = require('http');
  
// Create a server object
http.createServer(function (req, res) {
      
    // http header
    res.writeHead(200, {'Content-Type': 'text/html'}); 
      
    var url = req.url;
      
    if(url ==='/about') {
        res.write(' Welcome to about us page'); 
        res.end(); 
    }
    else if(url ==='/contact') {
        res.write(' Welcome to contact us page'); 
        res.end(); 
    }
    else {
        res.write('Hello World!'); 
        res.end(); 
    }
}).listen(3000, function() {
      
    // The server object listens on port 3000
    console.log("server start at port 3000");
});

输出: