node基础面试题(二)

基础面试题(二)

我的博客:https://baoyu-11.github.io/ (博客中有更多的信息,希望能给您带来帮助)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值