📜  Node.js 网络服务器

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

Node.js 网络服务器

什么是 Node.js?
Node.js 是一个开源服务器环境。 Node.js 在服务器上使用 JavaScript。 Web 服务器的任务是打开服务器上的文件并将内容返回给客户端。

Node.js 有一个名为 HTTP 的内置模块,它允许 Node.js 通过超文本传输协议 (HTTP) 传输数据。 HTTP 模块可以创建一个 HTTP 服务器来侦听服务器端口并将响应返回给客户端。

例子:

// Import the Node.js http module
var http = require('http'); 
  
// req is the request object which is
// coming from the client side
// res is the response object which is going
// to client as response from the server
  
// Create a server object
http.createServer(function (req, res) {
  
// 200 is the status code which means
// All OK and the second argument is
// the object of response header.
res.writeHead(200, {'Content-Type': 'text/html'}); 
  
    // Write a response to the client
    res.write('Congrats you have a created a web server');
  
    // End the response
    res.end();
  
}).listen(8081); // Server object listens on port 8081
  
console.log('Node.js web server at port 8081 is running..')

当客户端访问 url http://localhost:8081时,将执行在http.createServer()中传递的函数。

运行代码的步骤:

  • 将上面的代码保存在扩展名为.js的文件中
  • 打开命令提示符并使用cd命令转到文件所在的文件夹。
  • 运行命令node file_name .js
  • 打开浏览器并转到 url http://localhost:8081

在浏览器中打开 http://localhost:8081 时。

http.createServer()方法包括请求对象,可用于获取有关当前 HTTP 请求的信息,例如 url、请求标头和数据。

以下示例演示了在 Node.js 中处理 HTTP 请求和响应。

// Import Node.js core module i.e http
var http = require('http');
   
// Create web server
var server = http.createServer(function (req, res) {  
      
    // Check the URL of the current request
    if (req.url == '/') {
           
        // Set response header
        res.writeHead(200, { 'Content-Type': 'text/html' }); 
           
        // Set response content    
        res.write(
          `
            

GeeksforGeeks Home Page

            

A computer science portal

            `);         res.end();//end the response             }     else if (req.url == "/webtech") {                     res.writeHead(200, { 'Content-Type': 'text/html' });         res.write(`                        

Welcome to GeeksforGeeks

                           Read Web Technology content                        `);         res.end();//end the response             }     else if (req.url == "/DS") {                     res.writeHead(200, { 'Content-Type': 'text/html' });         res.write(`           

GeeksforGeeks

                       Read Data Structures Content                    `);         res.end(); //end the response             }     else if (req.url == "/algo") {                   res.writeHead(200, { 'Content-Type': 'text/html' });       res.write(`         

GeeksforGeeks

                   Read Algorithm analysis and Design Content                `);       res.end(); //end the response         }     else         res.end('Invalid Request!'); //end the response     // Server object listens on port 8081 }).listen(3000, ()=>console.log('Server running on port 3000'));

在上面的示例中, req.url 用于检查当前请求的 url 并基于它发送响应。
运行代码的命令:

输出:

  • 网址:本地主机:3000
  • 网址:localhost:3000/webtech
  • 网址:本地主机:3000/DS
  • 网址:本地主机:3000/算法