nodeJS(1)

1.Node.js概述

Node.js运行在服务器端的JS解释器

(1)对比JS

JS运行在客户端浏览器,存在多款浏览器,有兼容性问题;Node.js运行在服务器端,只有一种解释器	谷歌V8引擎,不存在兼容性问题
两者都有共同的内置(ES)对象,自定义对象,不同的宿主对象
JS用于操作网页,实现用户交互;Node.js用于服务器端开发,例如数据库访问,其它服务器的调用

(2)运行方式

脚本模式
 	node  拖拽脚本文件     回车
交互模式
 	node   回车   进入交互模式
 	两次ctrl+c     退出交互模式

(3)特点

是单线程运行逻辑,适合做I/O操作为主应用,支持数万个并发连接,例如:基于社交网络的大规模	WEB应用
不适合做CPU密集型的应用

2.全局对象

(1)global

检测一个变量或者函数是否为全局的
交互模式属于全局作用域,变量和函数都是全局的,可以通过global访问
脚本文件中不属于全局作用域,变量和函数都是局部的

(2)console对象

console.log(1)  //打印日志
console.info(2)  //打印消息
console.warn(3)  //打印警告
console.error(4)  //打印错误
console.time()  //开始计时
console.timeEnd()  //结束计时
开始计时和结束计时的值要保持一致

(3)process

进程对象,用来管理当前nodejs这个进程
启动任何一个软件都是代表对应的进程
process.arch     查看当前CPU架构
process.platform   查看操作系统
process.version   查看当前nodejs的版本号
process.pid    查看当前进程的编号
process.kill()   结束指定编号的进程

(4)Buffer

缓冲器、缓冲区,是内存中一块临时存储数据的区域
var buf=Buffer.alloc(5, 'abcde');  //创建buffer,分配空间大小为5个字节,并存储数据,每个汉字占3个	字节
buf.toString()  //将buffer转为字符串

3.模块

每个文件代表一个模块,模块表示一个功能体
require: 是一个函数,用于引入其它的模块,得到对方导出的对象
module:当前模块的对象
module.exports: 当前模块导出的对象,默认是一个空对象,如果要导出哪些内容只需要放入到这个对	象

1.模块

 __dirname   获取当前模块的绝对路径
__filename  获取当前模块的绝对路径+模块名称

2.模块分类

分为自定义模块、核心模块、第三方模块
以路径开头	不以路径开头
文件模块	require('./circle.js')
用于引入自定义模块	require('querystring')
用于引入官方提供核心模块
目录模块	require('./02_tao')
首先会到目录下寻找package.json文件中main对应文件,如	果没有的话会自动寻找index.js	require('tao')
首先会到当前目录下的node_modules目录中寻找tao目录模	块,如果当前找不到会一直往上一级的node_modules目录中	寻找
用于引入第三方模块

3.包和npm

CommonJS:是一种规范,制定了Node.js的模块规范
包:指的第三方模块,是目录模块的形式
npm:是一个第三方模块,用来管理包的工具模块,在	Node.js安装的时候会附带安装
npm  -v  查看版本号
网址:www.npmjs.com

(1)切换命令行的路径

cd  文件的路径     回车
如果有盘符的变化,再添加    
 	盘符名称:    回车
在要进入的目录下的空白区域,按住shift,单击鼠标右键,	选择“在此处打开powershell窗口”

(2)使用npm

npm  init  -y    初始化一个package.json文件,用于描述项目,记录下载的包
npm  install  包的名称    下载安装指定的包,将下载的包放	入到node_modules目录,在package.json中记录下载的这个	包,同时生成package-lock.json文件,用于记录所有的包的版本号
npm  install    自动去下载安装package.json和package-	lock.json中记录的包
其它npm命令: www.npmjs.cn

4.查询字符串querystring

const querystring=require('querystring')
浏览器向服务器发请求,传递数据的一种方式,位于网址中	问号(?)后的部分
kw=笔记本&price=5000
查询字符串模块:用于操作查询字符串的工具
parse()   将查询字符串解析为对象
练习:获取查询字符串中的用户名和密码
user=admin&password=123456
最后打印以下格式  ‘登录成功,欢迎:xxx  ,当前密码:xxx’

5.URL

统一资源定位,互联网上的任何资源(html,css,js,图像,视频...)都有对应的URL
http://www.codeboy.com:9999/products.html?kw=华硕
协议     域名/IP地址    端口  文件在服务器的路径  查询字符串
URL模块用来处理URL的工具,
new  URL()   将一个URL解析为对象,获取URL中的各个部分

6.定时器模块

提供一组全局函数

(1)一次性定时器

开启
var timer=setTimeout(回调函数, 间隔时间);
当间隔时间到了,会调用一次回调函数
清除
clearTimeout(timer)

(2)周期性定时器

开启
var timer=setInterval(回调函数, 间隔时间);
每隔一段时间,会调用一次回调函数
清除
clearInterval(timer)

(3)立即执行的定时器

开启
var timer=setImmediate(回调函数)
清除
clearImmediate(timer)
开启
process.nextTick(回调函数)
一旦开启无法清除
会将回调函数放入到事件队列,当主程序执行完再去执行事件队列

7.文件系统模块(fs)

用于操作服务器端文件
文件包括目录形式和文件形式。
mkdirSync(目录路径)   创建目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值