Node.js学习总结
一、node.js介绍
1.Node.js是什么
(1)nodejs是为了开发高性能的服务器而诞生的一种技术
(2)node.js就是运行在服务端的javascript,基于V8进行运行
2.Node.js有什么用
(1)Node能用来操作系统底层,操作硬件
(2)能够用来创建服务器,构建后端接口
3.前端学了node有何好处
(1)开发沟通
(2)后端开发
(3)中间层开发
(4)面试求职
(5)未来发展
二、node.js之File模块 var fs = require(“fs”)
1.文件夹操作
(1)创建文件夹:fs.mkdir
(2)读取文件夹:fs.readdir
(3)删除文件夹:fs.rmdir
2.文件操作
(1)写入(创建)文件夹:fs.writeFile
(2)读取文件夹内容:fs.readFile
(3)向文件中追加内容:fs.appendFile
(4)删除文件:fs.unlink
三、node js之HTTP模块
导入http模块-->创建一个服务器并监听-->给服务器添加请求处理函数
var http = requir("http")
http.createServer(function fn(req,res){
res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"});
res.end("hello,我是用node 创建的一个服务器")
}).listen(8888)
四、File+HTTP模块构建简单版静态webserver
var http
= require("http"),
fs
= require("fs"),
cp
= require("child_process");
http
.createServer(function (req
, res
) {
fs
.readFile("index.html", function (err
, data
) {
res
.end(data
);
});
}).listen(8889, "127.0.0.1");
cp
.exec("start http://127.0.0.1:8889/");
五、express(generator)构建项目
1.安装express库和生成器
cnpm i express -g
cnpm i express-generator -g
2.使用express生成器自动创建express项目
express + 项目名
3.跳转到package.json目录下安装相关的包
yarn/cnpm i / npm i
4.启动项目
SET DEBUG=mypro1:*&npm start
六、express中的一些核心特性
1.路由
我们在浏览器地址栏上写不同的路径会被认为是向服务端发起了不同的网络请求,然后服务器为了针对不同的请求做出不同的响应,就使用了路由,路由存放在routes里面
2.中间件
在请求开始到请求结束的中间,可以通过一定的方式插入你想要执行的逻辑代码,那么这些被插入的代码就是中间件。
中间件的语法为:app.use(中间件代码)
3.模板引擎--jade
jade是一个模板引擎,能够创建模板文件,一般用于服务端渲染页面
渲染流程:用户请求-->路由规则-->路由文件-->读取jade模板-->渲染
jade代码需要控制好缩进,否则代码可能无法生效
七、node.js的模块化语法–CommonJS规范
把一个对象当做一个模块,把一个函数当做一个模块,以一个class当做一个模块
导出模块方式(单个模块)
function add(a
,b
){
return a
+b
;
}
module
.exports
= add
引入方式
var add
= require("导出模块的地址")
var tot
= add(1,2)
console
.log("和",tot
)
八、MongoDB
MongoDB是一个由C++ 语言编写的基于分布式文件存储的数据库,数据库存储的是类似json格式的数据,称之为bson,菲关系型数据库
2.启动MongoDB服务器
mongod.exe --dbpath d:/data/db
3.MongoDB命令
查询数据库:show dbs
创建/切换数据库:use 数据库名
插入文档:db.names.insert({name:"张三"}),插入多条是insertMany
查询文档:db.names.find(),
查询时进行格式化:db.names.find().pretty()
删除文档:db.names.remove()
查询指定数量数据:db.names.find().limit()
从指定位置开始查询:db.names.find().limit().skip()
排序:db.names.find().sort({KEY:1}),1为升序,-1为降序
九、Nodejs项目实战
1.注册功能,流程
(1)先在webserver中构建项目前端页面
(2)依据RestfulAPI规范构建注册接口
(3)使用中间件做请求的跨域处理
(4)接口测试postman
(5)在项目中实现ajax交互
(6)注册时对数据进行加密
(7)后端将加密数据写入到MongoDB数据库
(8)将对model的生成做模块化处理
(9)在注册之前先做查询,不允许重复注册
2.登录功能流程
后端:(1)接受登录时传来的用户名和密码
(2)去数据库里面查询此用户名和密码是否存在
(3)如果存在那么久登陆成功,不存在就登录失败
前端:(1)获取页面上的用户名密码并做sha256算法加密
(2)将用户名和加密后的密码传入后端
(3)接受后端传来的验证结果
3.实现查询功能
后端:直接获取所有的用户信息返回到前端
前端:登陆成功后跳转到查询页面
4.实现token鉴权
(1)客户端使用用户名和密码请求登录
(2)服务端收到请求,验证登录是否成功
(3)验证成功后,服务端会返回一个token给客户端,反之,返回身份证验证失败的信息
(4)客户端收到token后把token用一种方式存储起来,如(headers/cookie/localstorage/sessionstorage)
(5)客户端每次发起请求时都会将token打给服务端
(6)服务端收到请求后,验证token的合法性,合法就返回客户端所需数据,反之,返回验证失败的信息