Node.js学习笔记(一)——简介

什么是Node.js?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。

Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

Node是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。

Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

总结: Node.js 是一个让 JavaScript 运行在服务端的开发平台,有了Node.js我们就可以使用JavaScript这门语言做服务器端的编程应用。

什么是V8引擎?

每一个浏览器都有一个内核,内核中有引擎。引擎分为:渲染引擎(渲染DOM)和脚本引擎(运行脚本语言)。

脚本引擎中最流行的就是chrome中的V8引擎。

Node.js用来做什么?

  • node可以解析js代码(因为没有浏览器安全级别的限制)因此提供了许多系统级别的API
  • node可以编写独立的服务端应用,无需借助任何web服务器,可以连接文件系统,以及操作数据库
  • node一般在实际应用中用来做中间层服务器使用

Node.js之模块化

什么是模块化?
Node.js一个重要的特性就是模块化,模块就是node.js对常用功能进行分组的方式。

为什么要模块化?

  • 模块化方便日常的维护
  • 最大程度的实现代码复用

什么是高内聚、低耦合?
高内聚:表示模块的独立性、独立性越强、内聚度越高
耦合度:表示模块之间的关系,关系越紧密、耦合度越高

模块化规范

  • AMD——前端的异步加载模块规范,(依赖前置: 指的是在定义模块时,就将所依赖的模块标明)
  • CMD——前端的异步加载同步书写模块规范,(依赖就近: 指的是在定义模块时,用到哪个模块,才引入哪个模块)
  • CommonJS——后端的同步加载模块

CommonJS规范(Node.js规范)

1、一个文件就是一个模块,模块里面的成员是私有的,各模块之间相互独立

2、由于模块之间相互独立,如果其他模块想要使用该模块里面的成员,那么该模块必须把该成员暴露出来,暴露的方式可以是exports或者module.exports

3、如果要引用其他模块,那么必须使用require引入

模块的分类

  • 核心模块——Node.js官方提供的模块(http、fs、os、path等),require可以直接引入
  • 第三方模块——互联网上广大的开源爱好者把一些常用的功能封装成了模块,然后进行打包,形成一个一个的工具,把这些工具包交给一个https://www.npmjs.com/网站进行统一的管理。我们需要借助一个叫做npm的包管理器进行下载,更新,删除
  • 自定义模块——需要自己写的模块,用module.exports导出,用require引入

注意:引入核心模块、第三方模块和引入自定义模块的区别。引入核心模块、第三方模块时,可以使用require('模块名')直接引用,引入自定义模块时使用require('路径+模块名')引入。

模块和包之间的区别

  • 一个文件代表一个模块
  • 多个模块放在同一个目录下形成包

使用Node.js搭建一个简单的服务器

// 1、引入http模块
const http = require('http');
// 2、创建服务器
const server = http.createServer((req, res) => {
    res.end("hello");
})
const port = 3000;
// 3、绑定端口
server.listen(port, () => {
    console.log("server is run at port " + port);
})

npm

  • npm 是一个第三方的包管理器,随着node的安装而安装。
  • npm 是一个网站https://www.npmjs.com/
  • npm 是一个命令

npm 常用命令

  • 初始化:npm init
  • 查看版本:npm -v
  • 安装模块:npm install
  • 全局安装:npm install -g
  • 卸载模块:npm uninstall
  • 更新模块:npm update
  • 搜索模块:npm search
  • 清除缓存:npm cache clear
  • 查看包信息:npm info <包名>
  • 查看包文档:npm docs <包名>
  • 查看包版本信息:npm info <包名> versions
  • 安装指定版本:npm install <包名>@版本号 -S
  • 查看全局安装目录:npm root -g
  • 修改存储目录:npm config set prefix “d\xxxx”

扩展nrm

  • 安装nrm: npm install nrm -g
  • 查看可用的源:nrm ls
  • 切换源:nrm use 源的名字
  • 添加公司私有源 nrm add <源名称> http://xxxxx

cnpm

cnpm是淘宝镜像,因为npm服务器在国外,下载速度慢,所以下载源可以改成国内的淘宝镜像。全局安装:npm install -g cnpm。安装后,可以使用cnpm命令下载模块。

yarn

yarn是Facebook的大牛开发出来的一个包管理器,功能和npm类似。

yarn常用命令

  • npm install yarn -g 安装yarn
  • npm install nrm -g 安装nrm
  • nrm ls 查看可用源
  • nrm use 源名 切换源
  • yarn init == npm init
  • yarn global add == npm install -g
  • yarn global bin == npm -g bin
  • yarn add 包名== npm install 包名 --save
  • yarn add 包名 -dev == npm install 包名 --dev-save
  • yarn update 包名 == npm undate 包名 更新包
  • yarn remove 包名 == npm uninstall 包名 删除包
  • yarn bin 全局安装目录
  • yarn cache ls 查看缓存
  • yarn clear 清除缓存
  • yarn install 安装所有包
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值