一、什么是NodeJS?

1、Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
2、Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
3、Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
简单的说 Node.js 就是运行在服务端的 JavaScript。
扩展;
I : input即输入端口
o : output即输出端口
CPU与外部设备、存储器的链接和数据交换都需要通过接口设备来实现,前者称为I/O接口,后者被称为存储器接口

二、什么是V8引擎?

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

三、Node可以做什么?

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

注意:

在node中无法使用window对象下面的一些方法,因为node中没有DOM 和 BOM的概念,同时node中也有一些属性浏览器无法使用 例如:process global等对象

四、node的优点和适用的项目?

优点:
高性能、速度快、效率高 适合做高并发的项目(I/O密集型的应用)
缺点:
不适合做大量的运算应用(CPU密集的应用)

五、扩展版本号

6.11.4
第一个是大版本号
第二个是小版本号
第三个是补丁版本号
版本问题:LTS长期稳定版本 Current最新版本 偶数为稳定版本 基础为非稳定版本

六、node交互模式

以前我们运行js必须基于浏览器这个环境,那么现在我们还可以在终端运行node的文件

1、建立一个hellow.js文件
2、运行js文件
node 文件名称
3、进入交互模式
node
4、退出交互模式
ctrl+d

注意:

node的环境下 没有dom 和bom的概念

node里面的方法有的在浏览器中也不能运行 例如 process进程

process

process.env是一个对象,我们可以通过其属性名来获取具体的环境变量值
设定一个环境变量,以达到简单区分不同机器,从而针对生产/开发环境运行不同的效果
每个系统的环境变量几乎都不一样,我们可以利用环境变量中具体某个特定的值来区分不同的机器
set:set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值
process.argv:获取命令行参数
返回值是一个数组
参数1:node的绝对路径
参数2:文件的绝对路径
参数3:...arg
__filename:获取当前运行文件的目录,绝对路径
__dirname:当前运行文件的绝对路径

七、创建一个简单的服务器

1、require:引入相应模块
2、createServer():创建服务器
3、listen:绑定端口号 参数2个 第一个参数端口号 第二个参数地址
4、request,response:接受和响应数据

//1、引入http模块

content-type:类型

1、text/plain:文本类型
2、text/html:html文档
3、image/* :图片类型
4、 application/x-javascript :javascript类型
5、text/css : css类型
6、application/json; charset=utf-8

八、request&&response常用的属性

req:包含请求的信息,例如请求头等
req.url:请求的地址
req.method:请求的方式
req.header:请求头
res:服务器的响应
res.statusCode:设置状态码
res.setHeader():设置响应头,其他Content-type:是设置浏览器相应数据的类型
res.writeHead();statusCode与setHeader的综合写法
res.write():写入响应数据,只能写入字符串
res.end():结束响应,并返回数据

九、node中模块的分类

1、node核心模块,require可以直接引入
2、自定义模块:需要自己写的模块 用module.exports导出 require引入
3、第三方模块:通过npm install 来安装 然后在require引入

十、什么是模块化?

模块化是将一个功能拆分成若干个小功能的方法优点:
代码复用、便于维护
模块化划分的原则:
1、功能复用次数较多
2、功能逻辑较为独立扩展:什么是高内聚、低耦合?
高内聚:代表模块的独立性、独立性越强、内聚度越高
耦合度:模块之间的关系,关系越紧密、耦合度越高

现有的模块化规范:

AMD CMD COMMON ES6module

前端 前端 后端 前后端

require sea.js Node js引擎

异步 异步 同步 同步

十一、npm

1、什么是npm?

npm是node的包管理仓库
npm是一个网站
npm是一个命令

2、npm 常用命令

查看版本 npm -v
安装模块 npm install <module name>
全局安装 npm install <module name> -g
卸载模块 npm uninstall <module name>
更新模块 npm update <module name>
搜索模块 npm search <module name>
清除缓存 npm cache clear
查看包信息 npm info <包名>
查看包文档 npm docs <包名>
查看包版本信息 npm info <包名> versions
安装指定版本 npm install <包名>@版本号 -S
查看全局安装目录 npm root -g
修改存储目录 npm config set prefix "dxxxx"

3、扩展nrm:

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

十二、如何自己写的包上传到npm

1、注册一个npm账号 进行账号邮箱验证
2、npm init name值一定要是全网唯一的
3、当输入npm init时 会帮你在文件夹下建立一个package.json文件 当有这个文件的时候就代表你的目录已经是一个包了
4、注册npm adduser 注意密码是不可见的
5、登录 npm login
6、npm publish 上传文件
7、下载文件 npm install 文件名

十三、yarn简介

1、npm的缺点:

1、包是同步下载的 速度非常慢
2、在一个项目中下载完成后在另一个项目中还要继续下载

2、yarn的优点:

1、包下载是异步的比npm快
2、yarn有效的保证版本号不容易出错
3、yarn本地包会有缓存,安装本地包会非常快

3、yarn的常用命令:

npm install yarn -g 安装yarn
npm install nrm -g 安装nrm
nrm ls 查看可用源
nrm use 源名 切换源
yarn init == npm init
yarn global add <name> == npm install -g <name>
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、开发环境:项目尚且在编码阶段,我们的代码一般在开发环境中 不会在生产环境中,生产
环境组成:操作系统 ,web服务器 ,语言环境。 php 。 数据库 。 等等
2、测试环境:项目完成测试,修改bug阶段
3、生产环境:项目数据前端后台已经跑通,部署在阿里云上之后,有客户使用,访问,就是
网站正式运行了。
三个环境也可以说是系统开发的三个阶段:开发->测试->上线

save && --save-dev的区别

可分别将依赖(插件)记录到package.json中的dependencies和devDependencies下面。
dependencies下记录的是项目在运行时必须依赖的插件,常见的例如react jquery等,即
及时项目打包好了、上线了,这些也是需要用的,否则程序无法正常执行
devDependencies下记录的是项目在开发过程中使用的插件,一旦项目打包发布、上线了
之后,devDependencies中安装的东西就都没有用了
如果模块是在开发环境中使用,那么我们安装依赖的时候需要--dev


千锋HTML5学院:JavaScript学习笔记(三十七)-- GIT 和 GITHUB​zhuanlan.zhihu.com

千锋HTML5学院:node学习笔记(三十九)​zhuanlan.zhihu.com

node JS獲取GPS_node学习笔记(三十八)相关推荐

  1. node JS獲取GPS_Node.js 14 正式发布:V8 引擎升级,新增异步本地存储 API

    Node.js 14 版本于近日正式发布, 此版本包含的亮点如下: 对诊断功能的改进 升级 v8 引擎 新增实验性的异步本地存储 API 强化流 API 移除实验性模块中的警告 移除一部分早期版本中废 ...

  2. 软件工程之美学习笔记三十八 37 | 遇到线上故障,你和高手的差距在哪里?

    <软件工作之美>材料地址:https://time.geekbang.org/column/article/97219 遇到线上故障,新手和高手的差距在哪里? 新手遇到复杂的线上故障,不知 ...

  3. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  4. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装

    扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...

  5. MATLAB学习笔记(十八)

    MATLAB学习笔记(十八) 一.Simulink仿真基础 1.1 Simulink的启动 1.2 系统仿真模型的创建 1.3 仿真参数的设置 1.4 总结 二.子系统的创建与封装 2.1 子系统的创 ...

  6. JavaScript学习(三十八)—面向过程与面向对象

    JavaScript学习(三十八)-面向过程与面向对象 一.程序设计语言中的两大编程思想:面向对象.面向过程 (一).面向过程 就是指完成某个需求的时候,先分析出完成该需求时所需要经历的步骤有哪些,然 ...

  7. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言

    嵌入式系统设计师学习笔记二十八:嵌入式程序设计③--高级程序设计语言 解释程序和编译程序 编译器的工作阶段示意图 语法错误:非法字符,关键字或标识符拼写错误 语法错误:语法结构出错,if--endif ...

  8. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  9. OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()

    OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle() 1. ...

最新文章

  1. P1502 窗口的星星 离散化+扫描线
  2. 借花献佛!成都java工程师培训
  3. KMP Trie 例题讲解
  4. 七、Vue cli详解学习笔记——什么是Vue cli ,Vue cli的使用(安装,拉取2.x模板,初始化项目),Vue cli2详解,Runtime-Compiler和Runtime-only区别
  5. 正则化、归一化含义解析(一)
  6. MongoDB学习笔记二—Shell操作
  7. Base64编码简介及在java中的使用
  8. spring boot http status 400_kubernetes configmap 热更新spring-boot应用
  9. 10月1日 记录下os.path.dirname(__file__)使用
  10. OpenCV在图片和视频中的人脸检测
  11. 大众车机天宝187A Hack笔记
  12. 【科研人应该知道的网站】查阅文献+学习+代码+开发+其他——研究生必备学习网站,研究生应该知道的学习网站
  13. 菜鸟教程出app了!青结
  14. 情人节 礼物TOP10
  15. JS实现简单的网页文本转语音阅读
  16. MySQL修改表的字段长度
  17. 我是怎样爬下6万共享单车数据并进行分析的(附代码)
  18. 锤子落地,音乐版权内卷时代真能结束吗?
  19. R的一些常用函数【基于尚学堂的部分总结】
  20. MATLAB | 绘图复刻(三) | 分层聚类分析图:树状图+热图

热门文章

  1. Zabbix网站pv_uv_ip的监控
  2. Ubuntu18在4K显示器如何调分辨率
  3. 移动安全规范 — 1 -WIFI连接安全规范
  4. 软件测试——功能测试(缺陷)2
  5. RA关节功能残疾与软骨破坏的相关性高于骨破坏
  6. 华为OD机试 - 日志首次上报最多积分
  7. 洛谷 P2517 [HAOI2010]订货
  8. 联想计算机从金丝顿u盘启动,联想笔记本u盘启动不了怎么办
  9. python 今日头条 微头条_今日头条微头条范文-头条号的微头条你们都发些什么,该如何写?...
  10. 5、C++结构体的使用