- 如何判断一个字符串是另一个字符串的子串
indexof es6:include startWith endWith - 单点登陆(可以自己查一下,我也不是特别了解)
什么是单点登录?单点登录全称 Single Sign On(以下简称 SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 - 防止 sql 注入
(1).使用 escape() 对传入参数进行编码
(2)使用 connection.query ()的查询参数占位符
(3)使用 escapeId()编码 SQL 查询标识符
(4)使用 mysql.format()转义参数 - Node 好处:
(1).处理高并发 事件驱动 轻量 要用于搭建高性能的 web 服务器,
(2)它是一个 Javascript 运行环境
(3)依赖于 Chrome V8 引擎进行代码解释
(4)事件驱动
(5)非阻塞 I/O
(6)轻量、可伸缩,适于实时数据交互应用
(7).单进程,单线程 - Express 和 koa 的区别?
(1).异步 摆脱回调地域
(2).对 response 和 request 进行了封装 content
(3).Express 主要基于 Connect 中间件框架,功能丰富,随取随用,并且框架自身封装 了大量便利的功能,比如路由、视图处理等等。而 koa 主要基于 co 中间件框架,框架 自身并没集成太多功能,大部分功能需要用户自行 require 中间件去解决,但是由于其 基于 ES6 generator 特性的中间件机制,解决了长期诟病的“callback hell”和麻烦的 错误处理的问题,大受开发者欢迎 - 事件驱动模型和事件循环
(1).事件驱动模型:当服务端收到请求时,就把它关闭 然后处理下一个请求 当第一个请 求处理完毕后 就放回处理队列 当达到队列开头 将结果返回给用户 好处:高效 扩展 性强 因为服务端一直接受请求 不等待任何读写操作
(2).事件循环:查看队列里面是否有队列里面有待处理的 如果有 交给主线程执行 - Redis
使用场景:支持 string、list、set、zset 和 hash 类型数据。
(1). 配合关系型数据库做高速缓存
• 缓存高频次访问的数据,降低数据库 io
• 分布式架构,做 session 共享
(2). 可以持久化特定数据。
• 利用 zset 类型可以存储排行榜
• 利用 list 的自然时间排序存储最新 n 个数据 - 进程和线程
(1).进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
(2).进程是线程的容器 - require()模块加载机制
(1).先判断是否存在文件缓存区中,存在直接导入,没有的话,在判断是否是原生模块,
(2).如果是原生模块,再看是否在原生模块缓存区中,如果有直接导入,没有的话加载原生模块,缓存原生模块,再导入
(3).如果不是原生模块,先查找文件模块,根据扩展名载入文件模块,缓存文件模块,在导入 - 什么是 WebSocket,简述 WebSocket 连接过程
websocket,长链接,保持 http 请求不断开,服务端可以主动往客户端推送消息, 不需要客户端通过 http 不断请求 - SQL 中的 explain 的用途
执行计划,用来分析 sql,可以看出是否使用了索引 - 什么是 WebSocket,简述 WebSocket 连接过程
websocket,长链接,保持 http 请求不断开,服务端可以主动往客户端推送消息, 不需要客户端通过 http 不断请求 - 简述 event loop
时间循环机制,node 分两种任务队列,微任务(异步等操作)、宏任务(主进程)。
先执行一个红任务,执行完成后删除,执行所有微任务,在执行下一个宏任务 - node 的特点和试用场景
node 单线程,异步 io。适合高并发 io 操作多的情况。 - 如何避免回调地狱
使用 async、await 避免回到地狱
本文作者: 鲁宝玉
本文链接: https://baoyu-11.github.io/2020/08/03/node%E5%9F%BA%E7%A1%80%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%88%E4%BA%8C%EF%BC%89/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
![]()
