Node.js笔记分享

Node.js

一、初识Node.js

与浏览器为Js提供前端运行环境相对应,Node.js是基于V8引擎的Js运行环境,为Js做后端开发提供了可能。

Node.js的作用

基于Express框架(http://www.expressjs.com.cn/),可以快速构建Web 应用

基于Electron框架(https://electronjs.org/),可以构建跨平台的桌面应用

基于restify框架(http://restify.com/) ,可以快速构建API接口项目

读写和操作数据库、创建实用的命令行工具辅助前端开发、etc...

Node.js的学习路线

JavaScript 基础语法 + Node.js 内置 API 模块(fs、path、http等)+ 第三方 API 模块(express、mysql 等)

终端命令

bash 复制代码
node -v # 查看版本号
node a.js # 执行js文件
# 使用nodemon执行,可监听项目文件变动,方便开发
nodemon a.js 

二、Node.js 内置 API 模块

fs文件系统模块

fs.readFile() 方法,用来读取指定文件中的内容

fs.writeFile() 方法,用来向指定的文件中写入内容

path 路径模块

path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串

path.basename() 方法,用来从路径字符串中,将文件名解析出来

path.extname() 方法,可以获取路径中的扩展名部分

http 模块

服务器和普通电脑的区别在于,服务器上安装了 web 服务器软件,例如:IIS、Apache 等。

在Node.js中,我们可以借助内置的http模块,简单几行代码,就能手写一个服务器软件。

js 复制代码
const http = require('http')
const server = http.createServer() // 创建web服务器实例
server.on('request', (req, res) => {}) // 监听网络请求
server.listen(80, () => {})// 绑定80端口启动服务器实例

三、模块化

把复杂问题自顶向下划分成若干模块的过程,对系统来说,模块是可组合、分解、更换的单元。

编程中的模块化

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

好处:提高复用性,可维护性,实现按需加载。

Node.js中的模块的分类

内置模块,自定义模块,第三方模块(包)

模块的暴露与引用

模块的作用域为当前模块,如需被外界引用,则需先暴露相应的成员。

js 复制代码
// 暴露
module.exports  // 或 exports
// 引用
require()

注:默认module.exports和exports两个引用指向同一对象,但可分别修改,最终以前者为准。

Node.js 中的模块化规范

Node.js 遵循了 CommonJS 模块化规范。

四、npm与包

查询地址: https://www.npmjs.com/

下载地址:registry.npmjs.org

终端命令

bash 复制代码
npm -v
npm install 包名  # npm i 包名
npm install 包名@2.22.2 # 指定版本号下载
npm install 
npm uninstall
npm i 包名 -d # 记录到devDependencies节点
npm i 包名 -g # 全局安装指定包
npm uninstall 包名 -g # 全局卸载

包会下载到node_modules 文件夹,并记录在package-lock.json 配置文件。

切换镜像源

bash 复制代码
# npm命令切换
npm config get registry
npm config set registry=[url] 
# 使用nrm工具切换
npm i nrm -g
nrm ls
nrm use taobao

包管理配置文件

bash 复制代码
// 作用:在执行命令所在的目录中,快速生成package.json文件
npm init -y

开发和发布包

bash 复制代码
npm login
npm publish # 上传,包名根目录下运行
npm unpublish 包名 --force # 删除

模块的加载机制

内置模块:优先级最高,主要体现在与其他模块同名的情况。

自定义模块:确切文件名>补全.js>补全.json>补全.node。

第三方模块:从js同目录下开始依次向上一级目录查找node_modules。

相关推荐
蒸蒸yyyyzwd5 小时前
AI应用相关可能的面试问题
笔记
叼烟扛炮6 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd7 小时前
学习笔记 八股手撕
笔记·学习
揣一尾游鱼yu8 小时前
Spring上(IOC)笔记
java·笔记·spring·ioc
小李不想当小白10 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Hone10 小时前
我把「自动发文章到掘金」做成了一个 Agent 技能:juejin-skills
node.js·ai编程·前端工程化
瑞码空间11 小时前
JSP与Servlet核心开发与CRUD实战笔记
java·笔记·servlet·jsp
La Pulga12 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos
wuyoutrans14 小时前
以色列专利OA答复翻译,重点要避开哪些坑?
笔记
宝绿特塑业再生科技15 小时前
HDPE再生颗粒户外家具表面粉化机理与改性技术全解析
笔记·户外家具·再生塑料·塑木桌椅