node
文章平均质量分 56
零零柒c
这个作者很懒,什么都没留下…
展开
-
NodeJS组成原理
NodeJS组成原理初步了解nodejs组成原理蓝色部分基本上都是js代码1. 用户代码JS代码,开发者编写的2. 第三方库大部分仍然是JS代码,由其他开发者编写3. 本地模块代码JS代码4. V8引擎c/c++代码,作用:把JS代码解释成为机器码可以通过v8引擎的某种机制,扩展其功能V8引擎的扩展和对扩展的编译,是通过一个工具:gyp工具某些第三方库需要使用node-gyp工具进行构建,因此需要先安装node-gyp...原创 2021-03-15 22:13:37 · 369 阅读 · 0 评论 -
socket.io
socket客户端连接服务器(TCP / IP),三次握手,建立了连接通道客户端和服务器通过socket接口发送消息和接收消息,任何一端在任何时候,都可以向另一端发送任何消息有一端断开了,通道销毁http客户端连接服务器(TCP / IP),三次握手,建立了连接通道客户端发送一个http格式的消息(消息头 消息体),服务器响应http格式的消息(消息头 消息体)客户端或服务器断开,通道销毁实时性的问题:轮询长连接websocket专门用于解决实时传输的问题客户端连接服原创 2021-03-14 21:10:51 · 658 阅读 · 0 评论 -
jwt
jwtjwt 也相当于一个令牌一样的东西 可以和cookie一样 可以用来进行登录和认证但是jwt相对于更完善一点 统一规划了不同客户端 浏览器 手机等等jwt提供了一套统一的规范 不管使用什么终端设备 都用一套规范随着前后端分离的发展,以及数据中心的建立,越来越多的公司会创建一个中心服务器,服务于各种产品线。而这些产品线上的产品,它们可能有着各种终端设备,包括但不仅限于浏览器、桌面应用、移动端应用、平板应用、甚至智能家居实际上,不同的产品线通常有自己的服务器,产品内部的数原创 2021-03-07 22:23:46 · 111 阅读 · 0 评论 -
session
sessionsession文档https://github.com/expressjs/sessionsession 是用来可以进行登录认证的 和cookie jwt 一样不存在谁取代谁 各有个 的好处session是存储在服务器的而cookie是存储在客户端的进行简单的session测试在在node里面 有一个session中间件 只需要简单的配置 就可以使用sessionsession安装npm i express-sessionsecret 相当于一种你要加密的秘原创 2021-03-07 11:58:42 · 90 阅读 · 0 评论 -
CORS中间件
CORS中间件CORS中间件文档https://github.com/expressjs/cors#readmenpm i cors使用cors中间件能直接解决简单请求的跨域处理预检的请求fetch("http://localhost:5008/api/student", { method: "POST", headers: { "content-type": "application/json", a: 1, }, credentials: "includ原创 2021-03-06 11:26:19 · 1175 阅读 · 0 评论 -
跨域之CORS
阅读本文,你需要首先知道:浏览器的同源策略跨域问题JSONP原理cookie原理JSONP并不是一个好的跨域解决方案,它至少有着下面两个严重问题:会打乱服务器的消息格式:JSONP要求服务器响应一段JS代码,但在非跨域的情况下,服务器又需要响应一个正常的JSON格式只能完成GET请求:JSONP的原理会要求浏览器端生成一个script元素,而script元素发出的请求只能是get请求所以,CORS是一种更好的跨域解决方案。概述CORS是基于http1.1的一种跨域解决方案,它.原创 2021-03-06 11:10:18 · 253 阅读 · 0 评论 -
跨域之JSONP
同源策略在协议,端口,主机名完全相同的情况下 访问才不会出现跨域请求在出现跨域的情况之后可以用多种办法解决JSONP就是其中一直利用JSONP解决跨域 实际上是利用script标签 来请求资源 这样能够解决跨域 但尽管这样能够解决 但是还是需要服务端进行相应的配置 才能拿到数据页面上也需要进行相应的配置服务端返回的callback在页面的js代码里面需要提前创建这样一个名字的函数JSONP缺陷如果没有跨域的话 服务端就需要 另外重新配置返回的数据格式 这样就会很麻烦而且JSO原创 2021-03-06 10:30:01 · 84 阅读 · 0 评论 -
断点调试
node进行断点调试需要用到node里面的 node --inspect 启动模块在package里面配置一下启动服务然后启动服务打开页面的控制台就会多一个东西,这个东西就相当于是node的控制台然后点击source 里面 就能看到我们当前程序运行所运行的相关代码文件可以在里面 打断点进行相应的调试除了用浏览器调试 还可以用vscode自带的调试工具这样配置之后也可以进行断点调试...原创 2021-03-06 10:14:40 · 113 阅读 · 0 评论 -
实现简单的登录和认证
登录分发cookie利用cookie-parser 中间件安装npm i cookie-parser简单的使用cookie-parser加入cookie-parser 中间件加入之后,会在req对象中注入cookies属性,用于获取所有请求传递过来的cookie加入之后,会在res对象中注入cookie方法,用于设置cookieconst cookieParser = require("cookie-parser");app.use(cookieParser());路由配置ro原创 2021-03-04 23:03:52 · 276 阅读 · 1 评论 -
cookie的基本概念
一个不大不小的问题假设服务器有一个接口,通过请求这个接口,可以添加一个管理员但是,不是任何人都有权力做这种操作的那么服务器如何知道请求接口的人是有权力的呢?答案是:只有登录过的管理员才能做这种操作可问题是,客户端和服务器的传输使用的是http协议,http协议是无状态的,什么叫无状态,就是服务器不知道这一次请求的人,跟之前登录请求成功的人是不是同一个人由于http协议的无状态,服务器忘记了之前的所有请求,它无法确定这一次请求的客户端,就是之前登录成功的那个客户端。你可以把服务器想象成有着原创 2021-03-04 18:04:57 · 641 阅读 · 1 评论 -
express路由
在 Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数express.router()路由本身也是一个中间件一般用来处理通过use中间件 所匹配的基地址比如处理student管理所有请求基地址为/api/student 都会交给studentRouter 这个路由来执行后续的处理然后就可以把studentRouter 单独拧出来配置...原创 2021-03-04 12:10:25 · 222 阅读 · 1 评论 -
常用中间件
express.static()静态资源中间件这个中间件就是专门用来控制静态资源的使用const staticRoot = path.resolve(__dirname, “…/public”);app.use(express.static(staticRoot)) 传入静态资源路径上面面这段代码的作用:当请求时,会根据请求路径(req.path),从指定的目录中寻找是否存在该文件,如果存在,直接响应文件内容,而不再移交给后续的中间件如果不存在文件,则直接移交给后续的中间件处理默认情况下原创 2021-03-03 21:29:02 · 257 阅读 · 1 评论 -
express中间件
Express中间件Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架,从本质上来说,一个 Express 应用就是在调用各种中间件。中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。中间件可以是很多个处理函数const express = require("exp原创 2021-03-02 22:39:39 · 92 阅读 · 0 评论 -
nodemon
npm i -D nodemon原创 2021-03-02 21:58:06 · 297 阅读 · 0 评论 -
express的基本使用
express中文网https://www.expressjs.com.cn/express是Node.js的核心框架express可以快速构建web服务器 / api服务器express的安装express的基本使用const express = require('express')const http = require('http')const app = express(); //创建一个express应用 //app实际上是一个函数 用于处理请求的函数const server原创 2021-03-02 21:39:35 · 279 阅读 · 0 评论 -
数据验证validate.js
引入和安装参考链接http://validatejs.org/npm/node.js$ npm install --save validate.jsvar validate = require(“validate.js”);因为validate.js是用于验证某个对象的树形是否满足某些规则所以进行rule规则配置presence 配置是否可以空值type 配置数据的类型length 配置数据的长度fromat 可以进行格式的配置 可以用正则numericality 可以进原创 2021-03-01 21:30:21 · 585 阅读 · 1 评论 -
node 日志记录
node通过log4js这个模块往数据库中进行日志的记录建立一个简单的日志记录需要先引入log4js然后在进行log4js的相关配置可以参考链接配置使用https://log4js-node.github.io/log4js-node/或者参考链接配置使用https://www.npmjs.com/package/log4jsconst log4js = require("log4js");const path = require("path");log4js.configure({ a原创 2021-03-01 21:05:57 · 578 阅读 · 0 评论 -
Node day1-全局对象
1.setTimeout,setInterval,setImmediate3者的用法和在js中一样setImmediate就相当于setTimeout(()=>{},0)2.__dirname获取当前模块所在的目录__dirname不是global的属性3.__filename获取当前模块的文件路径也不是global的属性process4.cwd() 返回当前node进程的工作目录node进程在哪一个目录下进行的就返回哪个5.exit()强制退出当前node进程.原创 2021-01-25 23:27:20 · 64 阅读 · 0 评论