Nodejs学习笔记(一)——基础之全局对象、包和npm
【目录】
Nodejs学习笔记(二)——模块
Nodejs学习笔记(三)——同步和与异步之文件系统模块
Nodejs学习笔记(四)——http协议与服务器
Nodejs学习笔记(五)——express框架、路由(器)及中间件
Nodejs学习笔记(六)——Mysql模块
Nodejs学习笔记(七)——接口API
- 一、Node.js概述
- (1)对比JS
- (2)网址
- (3)使用Node.js
- (4)特点
- 二、全局对象
- (1)global
- (2)console
- (3)process
- (4)Buffer
- 三、包和npm
- (1)切换命令行的目录
- (2)使用npm
一、Node.js概述
Node.js是运行在服务器端的JS解释器,基于谷歌的V8引擎。
(1)对比JS
- JS运行在客户端浏览器,存在多种JS解释器,存在代码兼容性问题;Node.js只有V8引擎一种解释器,不存在代码兼容性问题
- JS和Node.js都有共同的ES(内置)对象和自定义对象,不同的宿主对象
- JS用于开发浏览器端的交互效果,Node.js用于服务器端开发,例如数据库的访问,其它服务器的调用…
(2)网址
www.nodejs.org 官网
www.nodejs.cn 中文镜像
(3)使用Node.js
脚本模式
node 拖拽脚本文件 回车
拖拽脚本文件自动生成绝对路径,运行脚本文件。
交互模式
node 回车 进入交互模式
结束:两次ctrl+c 或者 ctrl+d
(4)特点
- Node.js属于单线程运行逻辑
- 支持数万个并发连接
- 适合做基于社交网络的大规模WEB应用
- 不适合做CPU密集型的操作
二、全局对象
(1)global
检测一个变量或者函数是否为全局的
- 交互模式属于全局作用域,创建的函数和声明的变量是全局的
- 每个脚本文件都是在一个作用域下,里边的函数和变量都是局部的,不存在全局污染
- JS下的global叫做window
var a = 1;
function fn() {return 2;
}
//报错,都不是全局下的
//在js浏览器环境下是全局变量window对象,但是在nodejs中脚本var变量是局部变量
console.log( global.a );
console.log( global.fn() );
(2)console
- console.log(1) //日志
- console.info(2) //消息
- console.warn(3) //警告
- console.error(4) //错误
- console.time() 开始计时
- console.timeEnd() 结束计时
开始计时和结束计时的参数要保持一致
练习:分别查看for、while、do-while三种循环分别循环100000次的耗时。
//计时 console.time('while');
for (var i = 0; i < 100000; i++) {}
console.timeEnd('while');//1.877msconsole.time('dowhile');
var i = 0;
do {i++;
}while(i < 100000);
console.timeEnd('dowhile');//1.164msconsole.time('while');
var i = 0;
while(i < 100000) {i++;
}
console.timeEnd('while');//1.055ms
(3)process
进程:计算机让的软件运行都是代表相应的进程
- process.arch 查看当前CPU架构
- process.platform 查看当前的操作系统
- process.version 查看当前Node.js版本
- process.pid 查看当前Node.js进程编号
- process.kill() 结束指定编号的进程
(4)Buffer
缓冲器:在内存临时存储数据的区域,常用于保存网络传输时的资源
//中文占3个字节
let buf = Buffer.alloc(6,'abc雅'); //创建Buffer,大小6字节
console.log(buf.toString()); //将Buffer转换为字符串
三、包和npm
包(package),指的是第三方模块
npm,用于管理包的工具模块,可以用于下载、上传、卸载、更新…
CommonJS规范:Node.js就是遵循这个规范,出现的模块概念。JS之所以作为服务器端语言,就是遵循这个规范。
下载地址:www.npmjs.com
(1)切换命令行的目录
方法1:
cd 粘贴目录的路径 回车
以 C:\Users\lenovo\Desktop\web实训\test地址为例:
回车后,将切换目录,结果如图:如果有盘符的变化,需要添加
盘符名称: 回车
如:要切换到D盘:
回车后,将切换目录,结果如图:
- 方法2:
在要进入的目录下的空白区域,按住shift,单击鼠标右键,选择‘打开powershell窗口’
(2)使用npm
在Node.js安装的时候会附带安装。
进入到指定位置的powershell窗口
npm -v
查看版本号npm init -y
初始化一个package.json文件,是项目描述文件,可以记录下安装的包npm install 包的名称
下载安装包,将包放入到node_modules目录中,如果这个目录不存在会自动创建,同时会生成package-lock.json文件,记录所有包的版本号;在package.json中会记录安装的这个包的信息。
这里以下载mysql包为例:npm install
自动去安装package.json和package-lock.json中记录的包
删除node_modules文件包和package-lock.json文件:
再输入npm install,就会重新下载已缓存过的文件:
npx -p node@8 node 文件路径
下载指定版本的nodejs,然后运行文件,运行完会将下载的nodejs删除
Nodejs学习笔记(一)——基础之全局对象、包和npm相关推荐
- python 学习笔记day03-python基础、python对象、数字、函数
python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...
- python内建函数测试对象身份_python 学习笔记day03-python基础、python对象、数字、函数...
python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...
- java并发编程实战学习笔记之基础知识与对象的共享
第二章:线程安全性 2.1 什么是线程安全性 可以被多个线程调用,并且在线程之间不会出现错误的交互 方法内的局部变量不需要保护,因为它存储在栈中,是每个线程独有的 2.2 原子性 一个共享变量可以定义 ...
- python描述符魔术方法_学习笔记-Python基础9-面向对象编程OOP-类的成员描述符(property)、类的常用内置属性、类的常用魔术方法、类和对象的三种方法...
一.类的成员描述符(property) 类的成员描述符是为了在类中,对类的成员属性进行相关操作而创建的一种方式,大部分属于数据清洗 属性有三种操作:get获取属性值.set修改或添加属性.delete ...
- Nodejs学习笔记(七)——接口API
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...
- Nodejs学习笔记(六)——Mysql模块
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http ...
- Nodejs学习笔记(四)——http协议与服务器
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(二)--模块 Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(五)--expr ...
- Nodejs学习笔记(二)——模块
[目录] Nodejs学习笔记(一)--基础之全局对象.包和npm Nodejs学习笔记(三)--同步和与异步之文件系统模块 Nodejs学习笔记(四)--http协议与服务器 Nodejs学习笔记( ...
- php基础教学笔记,php学习笔记:基础知识
php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...
最新文章
- 我的FizzBuzz和一点感想
- C# List集合转Json字符串示例代码
- Hadoop学习笔记—4.初识MapReduce
- 机器学习实战教程(四):朴素贝叶斯基础篇之言论过滤器
- 【基础】有关T-SQL的10个好习惯
- 深入理解 Spring Boot Starters 原理(手写Spring boot Start)
- Golang开发环境配置
- 【QT学习之路】Charts的简单使用
- windows:查询本机ip地址方法
- 什么是Data Matrix二维码
- 海马苹果助手ipad版_不惧掉签 | 苹果IPA安装包,免费自签教程
- 苹果4s怎么越狱_iPhone 12系列细节曝光:苹果调整屏幕尺寸
- Python 立体图形的画法(一)
- 这个好用高效的读书笔记app软件一定要收藏
- 快看影视大全隐私政策
- 实验吧-密码学(二)
- 瑞萨电子第一家Preferred Partner-武汉万象奥科
- 全志A64 lichee编译脚本build.sh分析
- ios 输入法扩展_iOS 11自带输入法新增3个小功能,贴心!
- 2022-2028年中国休闲食品行业市场调查研究及发展前景规划报告
热门文章
- Vuejs 计算属性
- 用elemet-ui组件实现弹窗里的树形结构和拖拽功能
- 生物医学基础--右腿驱动
- OpenCV3学习(7.2)——图像分割之二(分水岭算法watershed)
- mysql中什么是选择引擎_Mysql 应该选择什么引擎
- 6-9 统计个位数字 (15 分)
- android系统换动画,Android Activity动画跳转修改
- 打开VM虚拟机,遇见问题“无法连接MKS:套接字连接次数太多;正在放弃。”
- vue中warning_vue项目运行提示Warnings while compiling.警告的解决方法
- SpringData_Repository接口概述