nodejs基础

本文介绍了Node.js的基础知识,包括其用途、组成部分(如javascript、fs、path和http模块),并详细讲解了如何使用fs模块操作文件、path模块处理路径以及创建简单的web服务器。还涉及了模块化、HTTP服务器的概念和实践,帮助读者理解Node.js的模块化规范。

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

目标:

◆能够知道什么是Node.js

◆ 能够知道Node.js可以做什么

◆能够说出Node.js这的javascript的组成部分

◆ 能够使用fs模块读写操作系统

◆能够使用path模块处理路径

◆能够使用http模块写一个基本的web服务器

目录: 

◆初始Node.js

◆fs文件系统模块

◆path路径模块

◆http模块

一、初识Node.js(官网了解)

 一、基础命令:

node -v //查看版本号

node 要执行的js文件路径 //在nodejs环境中执行JavaScript代码  

终端常用的快捷键:

① ↑键

② tab键

③esc键

④输入cls命令

二、fs模块 

fs模块是Node.js官方提供的、

用来操作文件的模块。它提供了一系列的属性和方法,用来满足用户对文件的操作需求

例如: fs.readFile()方法,fs.writeFile()方法

导入: const fs = require('fs')  //node内置的

①读取指定文件中的内容

1. fs.readFile()方法

fs.readFile(path[ , options],callback)

2.判断文件是否读取成功

可以判断err对象是否为null,从而知晓文件读取的结果

②向指定文件中写入内容

1. fs.writeFile()的语法格式

fs.writeFile(file, data[ , options], callback) //参数三默认是以 utf-8的格式

2.判断文件是否写入成功

可以判断err对象是否为null,从而知晓文件写入的结果

3.fs模块-路径动态拼接的问题

解决:给完整路径,结合__dirname

注意__dirname表示当前文件所处的目录

三、path路径模块

path模块是Node.js提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求

例如:path.join()方法 ,path.basename()方法

导入: const fs = require('path')  //node内置的

①path.join()进行路径拼接

②path.basename()获取路径中的文件名 

③获取文件中的文件扩展名 

四、http模块 

①什么是http模块

②进一步理解http模块的作用 

③服务器相关的概念 

1. IP地址

2.域名和域名服务器

3.端口号

④创建最基本的web服务器 

1.创建web服务器的基本步骤

①先导入http模块

②创建web服务器实例

③为服务器实例绑定request事件,监听客户端请求

④启动服务器

2.req请求对象

req是请求对象,它包含了客户端相关的数据和属性,例如:req.url , req.method

3.res响应对象

res.end()方法,向客户端响应一些内容

4.解决中文乱码问题

设置响应头Content-type的值

5、根据不同的url响应不同的html内容

核心实现步骤

①获取请求的url地址

②设置默认的响应内容为404 Not found

③判断用户的请求路径是关于哪个页面的

④设置 Content-Type响应头,防止中文乱码

⑤使用res.end()把内容响应给客户端

动态响应内容

五、模块化

①模块化的基本概念

1.1什么是模块化

编程领域的模块化,就是遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块

1.2模块化规范

模块化规范就是对代码进行模块化的拆分与组合时,需要遵守的那些规则

②Node.js中的模块化 

2.1Node.js中模块的分类

   根据模块来源不同,将模块分为3大类:内置模块、自定义模块、第三方模块

2.2加载模块:

      *  使用强大的require()方法,可以省略 .js后缀名

      *  注意:使用require()方法加载其它模块时,会执行被加载中的模块代码

2.3Node.js中的模块作用域

   *  和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域

   * 好处:防止了全局作用域污染的问题

2.4向外共享模块作用域的成员

1. module对象

在每个.js自定义模块都有一个module对象,它们里面存储了和当前模块有关的信息

2. module.exports对象

在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,共外界使用。外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象

3.共享成员时的注意点

使用require()方法导入模块时,导入的结果,永远以module.exports“指向”的对象为准

4.exports对象

*  module.exports的另一种写法

 *  注意:时刻谨记。require()模块时,得到的永远是 module.exports指向的对象

2.5Node.js中的模块化规范

Node.js遵循了CommonJs模块化规范,CommonJS规定了模块的特性各模块之间如何相互依赖

### Node.js 基础教程和核心概念 Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端运行 JavaScript 代码[^1]。以下将从核心概念、安装与配置、模块系统等方面详细介绍 Node.js基础知识。 #### 核心概念 1. **事件驱动与非阻塞 I/O** Node.js 使用了事件驱动和非阻塞 I/O 模型,这使得它非常适合处理高并发请求。通过事件循环机制,Node.js 能够轻松处理成千上万的并发连接,而不会因为等待 I/O 操作而阻塞主线程[^1]。 2. **单线程与多线程结合** 尽管 JavaScript 本身是单线程的,但 Node.js 利用了 V8 引擎的多线程能力进行底层操作。通过事件循环和回调函数处理异步操作,减少了线程切换的开销,从而提高了性能[^1]。 3. **丰富的生态系统** npm(Node Package Manager)是世界上最大的开源库生态系统之一,拥有超过百万个包。这些包涵盖了从开发工具到框架、库等各个方面,极大地丰富了 Node.js 的功能扩展能力。 4. **跨平台支持** Node.js 支持多种操作系统,包括 Windows、Linux 和 macOS,这使得开发的应用可以轻松部署到不同环境中[^1]。 #### 安装与环境配置 要开始学习 Node.js,首先需要安装 Node.js 环境。可以通过访问 [Node.js 官方网站](https://nodejs.org/) 下载适合的操作系统版本并进行安装。安装完成后,可以通过以下命令验证安装是否成功: ```bash node -v npm -v ``` #### 模块系统 Node.js 的模块系统是其核心功能之一,提供了方便、模块化和可重用的代码组织方式[^2]。 1. **模块概述** 在 Node.js 中,一个 `.js` 文件就称之为一个模块(Module)。通过导入和导出模块,可以将相关功能的代码封装在一起,提高代码的可维护性和复用性。模块系统还具有查找规则、缓存和解决循环依赖等特性[^2]。 2. **模块分类** Node.js 的模块主要分为以下几类: - **核心模块**:由 Node.js 自带的模块,例如 `fs`、`http`、`path` 等。 - **文件模块**:开发者自行编写的模块,通常以 `.js` 文件形式存在。 - **第三方模块**:通过 npm 安装的外部模块,例如 `express`、`lodash` 等[^2]。 #### 示例代码 以下是一个简单的示例,展示如何创建和使用自定义模块: ```javascript // math.js - 自定义模块 module.exports = { add: function(a, b) { return a + b; }, multiply: function(a, b) { return a * b; } }; // app.js - 主程序 const math = require('./math'); console.log(math.add(2, 3)); // 输出 5 console.log(math.multiply(2, 3)); // 输出 6 ``` #### 学习资源推荐 - 官方文档:[Node.js 官方文档](https://nodejs.org/docs/) - 在线教程:参考站内引用提供的教程 - 实践项目:尝试构建一个简单的 HTTP 服务器或 RESTful API ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值