Heim  >  Artikel  >  Web-Frontend  >  Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen

青灯夜游
青灯夜游nach vorne
2022-06-27 13:16:413237Durchsuche

Wie erstelle ich einen HTTP-Server mit NodeJS? Im folgenden Artikel erfahren Sie, wie Sie mit Node einen einfachen HTTP-Server erstellen. Ich hoffe, er wird Ihnen hilfreich sein!

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen

1. Verwenden Sie Node.js, um JavaScript-Skripte direkt auszuführen

node.jsnode.js基于Chromev8引擎运行js代码,因此我们可以摆脱浏览器环境,直接在控制台中运行js代码,比如下面这个hello world代码

console.log('hello world');

控制台中直接使用node即可运行

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen


2. 创建一个简单的HTTP服务器

node.js的内置模块http提供了基本的http服务的能力,基于CommonJS规范,我们可以使用require导入http模块进行使用http模块中有一个createServer函数能够让我们创建一个http服务器 其接收一个回调函数作为参数,这个回调函数接收两个参数 -- requestresponse

  • request包括所有客户端请求的信息,比如url、请求头header、请求方式和请求体等
  • response主要用于返回信息给客户端,封装了一些操作响应体相关的操作,比如response.writeHead方法就可以让我们自定义返回体的头部信息和状态码

当我们将响应体处理好了之后,调用response.end()方法就可以将响应体发送给客户端 使用createServer函数只是帮我们创建了一个Server对象,并没有让其开启监听,我们还需要调用server对象的listen方法才可以进行监听,真正作为一个服务器开始运行

  • listen方法的第一个参数是监听的端口号,第二个参数则是绑定的主机ip,第三个参数是一个回调函数,会被http模块异步调用,当遇到错误的时候,就能够在这个回调函数的第一个参数中获取到抛出的异常 ,我们可以选择对异常进行处理,让我们的服务器更加健壮

下面是使用http模块创建一个简单服务器的例子

const { createServer } = require('http');
const HOST = 'localhost';
const PORT = '8080';

const server = createServer((req, resp) => {
  // the first param is status code it returns  
  // and the second param is response header info
  resp.writeHead(200, { 'Content-Type': 'text/plain' });  
  
  console.log('server is working...');  
  
  // call end method to tell server that the request has been fulfilled
  resp.end('hello nodejs http server');
});

server.listen(PORT, HOST, (error) => {  
if (error) {  
  console.log('Something wrong: ', error);   
   return;
  }  
  console.log(`server is listening on http://${HOST}:${PORT} ...`);
});

可以直接尝试用node运行它,创造一个属于你的服务器!服务器运行后,浏览器访问http://localhost:8080即可访问到这个服务器

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen

也可以使用nodemon运行它,这样当我们的代码发生变化的时候就不需要手动终止程序再重新运行了

npm i -g nodemon

建议全局安装它,这样就可以直接使用,不需要通过npx nodemon去使用 使用也很简单,直接将node命令改成nodemon命令即可

nodemon http-server.js

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen


3. 加上类型提示

前面我们在使用createServer以及resp对象的时候,看不到任何的语法提示,必须随时跟着node官方文档去边用边查,有点不方便 但是没关系,我们可以使用ts.d.ts文件帮助我们提供语法提示功能,注意,我们不是使用ts进行开发,只是使用它的语法提示功能而已

  1. 初始化项目 -- npm init -y
  2. 安装@types/node -- pnpm i @types/node -D
  3. 在项目目录下创建jsconfig.json文件,将node_modules排除在外,没必要对其进行检查
{  "compilerOptions": {
    "checkJs": true
  },  
  "exclude": ["node_modules", "**/node_modules/*"]
}

不知道你是否有发现上面的代码其实是有一处错误的呢?checkJs能够帮助我们检查类型错误问题,可以根据需要选择是否开启 可以看到,开启检查后立马就给我们提示了参数类型不匹配的问题

Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen

这时候将鼠标悬浮在listenbasierend auf der v8-Engine von Chrome Führen Sie <code>js-Code aus, damit wir die Browserumgebung loswerden und js-Code direkt in der Konsole ausführen können, wie zum Beispiel den folgenden hello world Code> Code

const { createServer } = require("http");
const HOST = "localhost";
const PORT = 8080;

const server = createServer((req, resp) => {
  resp.writeHead(200, { "Content-Type": "text/plain" });  
  console.log("server is working...");  
  
  // write some lorem sentences
  resp.write("Lorem ipsum dolor sit amet consectetur adipisicing elit.\n");
  resp.write("Omnis eligendi aperiam delectus?\n");
  resp.write("Aut, quam quo!\n");

  resp.end();
});

server.listen(PORT, HOST, (error) => {
  if (error) {    
  console.log("Something wrong: ", error);    
  return;
  }  
  console.log(`server is listening on http://${HOST}:${PORT} ...`);
});
🎜 Verwenden Sie einfach node direkt in der Konsole, um ihn auszuführen🎜🎜Lassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen🎜
🎜🎜2. Erstellen Sie einen einfachen HTTP-Server🎜🎜🎜node.jss integrierte im Modul http Stellt grundlegende http-Dienstfunktionen bereit. Basierend auf der CommonJS-Spezifikation können wir require zum Importieren verwenden http-Modul. Es gibt eine createServer-Funktion im http-Modul, die es uns ermöglicht, einen http-Server zu erstellen Es erhält eine Rückruffunktion als Parameter. Diese Rückruffunktion empfängt zwei Parameter – request und response 🎜

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie mit Node.js einen einfachen HTTP-Server erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen