NodeJS的基本概念、安装以及搭建;NodeJS入门

NodeJS基于Google Chrome的V8引擎,提供服务器级别的API,拥有单线程、非阻塞/异步IO和事件驱动的特点。通过npm管理包,广泛应用于操作系统、web应用、负载均衡等领域。本文介绍了NodeJS的安装,包括Docker安装方法,以及使用http、fs等模块搭建web服务器的基础步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NodeJS的基本概念

NodeJS是什么?

  1. NodeJS构建在Google Chrome的V8引擎之上,是一个独立的JavaScript运行环境(Google Chrome的V8引擎是目前公认的解析执行JavaScript代码最快的)

  2. NodeJS这个JavaScript执行环境中为JavaScript提供一些服务器级别的API操作(例如文件读写、网络服务的构建、网络通信、http服务器等处理)

  3. NodeJS可以完成服务器软件的功能,不需要php等传统的服务器语言

  4. NodeJS的包管理器npm,是世界上最大的开放源代码的生态系统

  5. 来张图片辅助理解👀

    node16

NodeJS的特点

  1. 单线程:

    NodeJS是单线程的,那么如何面对并发,靠的是事件循环

  2. 非阻塞/异步IO模型 (input/output):

    NodeJS在访问高IO操作后不会等待其完成,而是立即去执行其他代码,操作完成后会使用回调函数返回,保证高效的利用当前线程的cpu不造成硬件浪费

  3. 事件驱动:

    通过事件来驱动整个程序的进行, 由于是单线程,所以把高IO的操作就会移动到事件队列中等待,完成后通过回调函数的方式返回给线程来进行处理。这个循环处理的过程称之为—事件循环

为什么要学习NodeJS?

  1. 以下列举关于NodeJS的一些工具和框架:

    • nodeOS:基于node的操作系统

    • node-webkit:基于node开发的非常强大的web内核

    • express:基于node的框架

    • forever、pm2:负载均衡

    • log.io:通过浏览器可以打印各种输出的日志和报错

    • grunt、gulp、webpack:前端工程化工具

    • mochar、karma:测试的工具

  2. 学习了NodeJS,不但能辅助前端,而且能够代替后端的编程语言(php,java,C#) 即一门JS语言搞定前后端(全栈)

NodeJS的安装以及模块分类

Docker 安装 NodeJS

  1. 查看可用的版本Node

    docker search node
    
    node11
  2. 拉取最新版本的Node镜像

    docker pull node:latest
    
    node12
  3. 查看本地镜像

    docker images
    
    node13
  4. 运行容器

    docker run -itd --name node-test node
    
    node14
  5. 进入容器

    docker exec -it node-test /bin/bash
    
    node15

NodeJS完成web服务器对应功能的两类模块(API)

  1. 与前端交互的API(接收请求、响应内容)

    • http模块(request和response对象分别接受请求,响应内容)

    • url模块(用于 URL处理与解析)

    • querystring模块(参数处理)

  2. 本地的API

    • fs(File System)模块-----本地硬盘的文件的操作(包括查找服务器上的文件)

      • 得到文件与目录信息:stat

      • 创建一个目录:mkdir

      • 创建文件并写入内容:writeFile,appendFile

      • 读取文件的内容:readFile

      • 列出目录的内容:readdir

      • 重命名目录或者文件夹:rename

      • 删除目录与文件夹:rmdir,unlink

    • stream(流)模块(数据分成很多部分进行读取,而不是一次性读取–缓存区/buffer)

    • path(路径)模块

    • events模块-----执行服务器端js代码的模块

      • 开放了一个eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上

      • 后端没有界面,所以触发事件不能靠用户的某个动作(如:点击鼠标)进行,只能用函数去触发事件

NodeJS开发环境搭建

  1. 命令行的体验

    • 新建server1.js文件,代码如下:
      console.log("今日份分享😊")
      
    • 进入终端运行:
      node server1.js / node server1
      
  2. 创建简单的http服务

    • 新建server2.js文件,代码如下
      const http = require('http');       					    //引入http模块 
      const hostname ='127.0.0.1';        				    	    //服务器地址 
      const port = 9897;                 		 		    	    //服务器的端口号 
      const server = http.createServer((request,response)=>{                      //使用http来创建服务器 
          	response.writeHead(200,{"Content-Type":'text/plain;charset=UTF8'});  //响应头信息,状态码,内容类型
          	response.end('hello nodeJS\n'); 			    	    //响应结束
      });
      server.listen(port,hostname,()=>{					    //服务器监听 
          console.log(`Server running at http://${hostname}:${port}/`);           // ` 这个单引号是数字1左边的键
      });																												
      
    • 在终端运行:
      node server2.js / node server2
      
    • 打开浏览器访问:
      http://localhost:9897
      

🍳简单的🤏一点点入门级先分享到这里,想继续深入了解,请继续阅读♨️

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值