node.js
概念
能够脱离浏览器运行的javaScript 服务端运行环境。运行引擎是Chrome V8 。
使用
1.可进行后台API编写。
2.被webpack,Gulp,npm 等依赖。即使用webpack,npm 的项目要装node.js。
3.用作中间层,服务器中负责IO读写的中间层服务器。
优势
1.性能: 异步IO(可处理高并发), 处理数据,安全性。 原因:node.js 在chrome V8引擎中运行。
2.利于前端能代码整合。(前后端关注分离)
3.javaScript 中的内置方法在node.js 中基本都适用。
缺点
1.没有框架。
2.定位:中间层,而不是纯粹后端都用node.js。
包含模块 (重要内容)
全局模块:(又叫对象,如javaScript中document,window,无作用域的限制,随时随地都能访问,不需要引用)
内置模块:(系统已经封装好的模块(在安装node时))。只需要引入(require),不需要下载)
第三方模块或自定义模块:下载+引用 。(require 模块名,exports(相当于一个对象,导出值),module(批量导出))
eg1: 全局模块 process
process.env 环境变量
process.argv 返回数组:node安装地址,代码所在文件的绝对路径
__dirname 当前文件的相对路径
eg2:内置模块:
1)path模块 处理文件和目录路径
path.dirname 文件的目录路径
path.basename 文件名
path.resolve(‘node/a/b/c’,'../../','d') 可实现返回上级目录并插入新目录 node/a/d
path.resolve(__dirname,'index.js') 返回文件绝对路径
2)fs模块 处理文件读和写
let fs=require('fs');
fs.writeFile('test/b.txt','月薪2元',(err)=>{
})
fs.readFile(''./test/a.txt",(err,data)=<{
} )
备注:require 寻找文件方式:
1.如果有路径,就去路径里找
2.找不到路径,在node_modules里找
3.否则,在node的安装目录里找
eg3: 自定义模块
使用方式:
1.新建一个新模块作为自定义模块,写入要导出的值。(eg: exports.a=1;exports.b=2; or module.exports={a:1,b:2} or module.exports=function(){})
2.在需要引用自定义模块的文件中,引入模块,使用导出值。(eg: const mod1=require('./module'); console.log(mod1.a,mod1.b));
eg4: 内置模块:HTTP模块
- 服务器对象 http:createServer() //快速搭建一个服务器
使用:
let http=require('http');
http.createServer((req,res)=>{ //req 表示请求的详细信息 此处可获取请求的相关信息进行操作
res.end('404 not found');
})
数据交互
GET请求和POST请求
npm
概念
英文名: node package manage,即node 包管理
作用
管理第三方模块,包,插件,库。
使用
1. 插件,包,库多的项目中。
如何使用
问题1:package.json如何形成?
npm init //初始化包信息,初始化成功后悔生成package.json
problem2: npm,cnpm 如何去管理第三方的包?
npm install jquery // 装好后,项目中多了node_modules文件夹,package.json中的dependencies中多了jquery的依赖信息。
npm uninstall jquery //删除成功,依赖信息删除,node_modules删除
问题3:npm 常用命令
npm update XXX 更新包版本
npm install //将package.json中的依赖全装一遍