nodeJS

mac2026-08-31  9

nodejs基本使用

nodejs的来源及作用

目的:为构建高性能服务器 两种方式:交互模式(可以在命令行执行)和JS文件 是什么: Node.js 就是运行在服务端的 JavaScript,基于V8进行运行 作用:(1)Node能用来操作系统底层,操作硬件 (2)能够用来创建服务器,构建后端接口

nodejs模块

核心模块(nodeJS官网上的都是核心模块)、用户模块、自定义模块
核心模块之http模块
构建服务器 构建流程: ① 导入http模块 ② 使用http模块创建一个服务器- ③ 给服务器添加请求处理函数fn-->绑定端口
核心模块之file模块
文件夹操作 fs.mkdir创建文件夹 fs.rmdir删除空文件夹(只能删除空文件夹) fs.readdir读取文件夹 文件操作 fs.writeFile写入文件(文件不存在就创建文件,存在则写入内容) fs.readFile读取文件内容 fs.appendFile追加文件内容 fs.unlink删除文件

express

express是一个简洁而灵活的 node.js Web应用框架
核心特性
路由:定义了路由表用于执行不同的 HTTP 请求动作 中间件: 可以设置中间件来响应 HTTP 请求, 其作用:1、对此用户的请求做身份验证 2、 对请求做出的参数注入 3、甚至是最简单的日志打印 jade模板:可以通过向模板传递参数来动态渲染 HTML 页面, 创建模板文件,一般用于服务端渲染页面 安装及使用: 安装express库和生成器 cnpm/npm i express -g cnpm/npm i express-generator -g(不能漏掉enerator模块) 构建项目:express 项目名 跳转到package.json目录下安装相关的包 yarn 或者 cnpm i 或者 npm i 启动项目: SET DEBUG=mypro1:* & npm start

模块化

在JavaScript而言,模块化有几种规范,如amd,cmd,commonJS,es6的模块化 commonJS:服务器端模块的规范.为同步模块规范

MongoDB

MongoDB是一个由C++ 语言编写的基于分布式文件存储的数据库
与MySQL对比
Mysql等数据库的是类似于Excel表格式的数据,这种表格式的数据库也称之为关系型数据库,表叫做关系表。 MongoDB数据库存储的是类似json格式的数据,称之为bson,这种数据库由于比较自由,数据间并不一定有关系,我们称之为非关系型数据库 MongoDB作用: 1、数据的高并发读写 2、数据的海量数据存储 3、数据的高可扩展性 4、数据的高可用性

数据库相关指令:
查看命令提示:help 查询数据库: show dbs 创建/切换数据库: use 数据库名 显示当前所处数据库:db 查看MongoDB服务器地址:db.getMongo() 删除数据库:db.dropDatabase()
collection相关指令
查看集合show collections 或 show tables 命令 删除集合 db.collection.drop()
document相关指令
插入db.collection.insert() 批量插入db.collection.insertMany() 查询db.collection.find() skip()h和limit()可以实现分页查询 sort(),1为升序,-1为降序 查询时格式化db.collection.find().pretty() 更新db.collection.update() db.collection.save(),指定_id,就更新该条数据,不指定则类似于insert() 删除db.collection.remove() g)

RestfulAPI 规范

目的:规范的设计接口、提高可用性、降低沟通成本 核心内容 1、尽量返回JSON,避免使用XML 2、规定了几种请求方式 1)GET(SELECT)获取资源 2)POST(CREATE)创建资源 3)PUT(UPDATE)更新资源,客户端需要提供新建资源的所有属性 4)DELETE(DELETE)删除资源 OPTIONS:获取信息 3、规定了接口返回数据的结构 { "code": 200, "message": "啊哈哈", "succ": true, "data": [] } 4、 应该将API的版本号放入URL 如:https://api.example.com/v1/ github就是采用这种做法 5、 规定的一些通用字段 url?limit=10 # 指定返回记录的数量 url?offset=10 # 指定返回记录的开始位置 url?page=2&per_page=100 # 指定第几页,以及每页的记录数 url?sortby=name&order=asc # 指定返回结果按照哪个属性排序,以及排序顺序 url?state=close # 指定筛选条件

用户鉴权

常用鉴权方式 1.HTTP Basic Authentication----http协议本身的身份验证方法 2.session-cookie----session鉴权方式 3.Token 验证-------token鉴权方式【目前主要使用的方式】 4.OAuth(开放授权)---一般用于第三方授权,如你使用微信,支付宝等相关开发
session鉴权
鉴权流程 1.nodejs后端安装和使用cookie和session中间件(为了实现处理session和token的能力) 2.当用户登录成功时,后端向req.session中写入数据 3.当后端返回数据给前端时,会自动生成sessionid,标识当前登录了的这个用户 4.登陆之后,前端的每一次请求都会自动带上sessid(因为会自动发送cookie) 5.后端收到前端请求后通过sessionid自动找到session,然后会通过session中存储的用户基本信息来判断用户是否有效 缺点:无法直接支持跨端使用,一般是web端支持
token鉴权
鉴权流程 1.客户端使用用户名和密码请求登录 2.服务端收到请求,验证登录是否成功 3.验证成功后,服务端会返回一个Token给客户端,反之,返回身份验证失败的信息 4.客户端收到Token后把Token用一种方式存储起来,如(headers/ cookie / localstorage / sessionstorage / 其他 ) 5.客户端每次发起请求时都会将Token发给服务端 6.服务端收到请求后,验证Token的合法性,合法就返回客户端所需数据,反之,返回验证失败的信息 用途:token是任意端都支持,并且token在服务端的生成方式不一样,一般是由jwt算法实现,验证也是做算法验证
最新回复(0)