nodejs面试总结
一:Node 好处: 处理高并发 事件驱动 轻量 要用于搭建高性能的web服务器,
1. 它是一个Javascript运行环境
2. 依赖于Chrome V8引擎进行代码解释
3. 事件驱动
4. 非阻塞I/O
5. 轻量、可伸缩,适于实时数据交互应用
6. 单进程,单线程 它的单线程指的是自身 Javascript 运行环境的单线程
二:Express 和 koa的区别?
异步 摆脱回调地域
对response 和request进行了封装 content
Express主要基于Connect中间件框架,功能丰富,随取随用,并且框架自身封装了大量便利的功能,比如路由、视图处理等等。而koa主要基于co中间件框架,框架自身并没集成太多功能,大部分功能需要用户自行require中间件去解决,但是由于其基于ES6 generator特性的中间件机制,解决了长期诟病的“callback hell”和麻烦的错误处理的问题,大受开发者欢迎。
三:事件驱动模型和事件循环:
事件驱动模型:当服务端收到请求时,就把它关闭 然后处理下一个请求 当第一个请求处理完毕后 就放回处理队列 当达到队列开头 将结果返回给用户 好处:高效 扩展性强 因为服务端一直接受请求 不等待任何读写操作
事件循环:查看队列里面是否有队列里面有待处理的 如果有 交给主线程执行
四:Redis:
使用场景:支持string、list、set、zset和hash类型数据。
- 配合关系型数据库做高速缓存
- 缓存高频次访问的数据,降低数据库io
- 分布式架构,做session共享
- 可以持久化特定数据。
- 利用zset类型可以存储排行榜
- 利用list的自然时间排序存储最新n个数据
五:mysql 和mongodb的区别
mysql 关系型数据库 mongodb是非关系数据库(主要)
六:MySQL索引
七:闭包应该注意的地方
八:进程和线程
进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
进程是线程的容器
十:mysql存储引擎 和区别
InnoDB存储引擎:事务型数据库首选,支持事务安全表(ACID),支持行锁定和外键 是mysql 5.5之后的默认引擎
MyISAM 存储引擎:不支持事务和外键,访问速度较快,是mysql5.5 之前的默认引擎
MEMORY: 保存在内存中的数据表 ,每个memory表对应一个磁盘文件。格式是.frm 访问速度很快 缺点是:mysql服务关闭,数据丢失,另外对数据表大小有限制。
十一:如何判断一个字符串是另一个字符串的子串
indexof es6:include startWith endWith
十二:单点登录(SSO)
多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分
大体意思就是多个系统共用一个登陆系统,登陆认证系统来管理用户信息。其他系统要进行登陆的拦截,如果用户没有进行登陆要跳转到登录系统进行登陆。
十三:oauth2.0
比如做的google 或者github 登录获取用户信息。需要先去第三方获取code(授权码),然后拿着code去请求获取到access_token(令牌),然后用令牌去获取到用户信息。
四种方式:
- 授权码(authorization-code)上面说的就是这种
- 隐藏式(implicit)
- 密码式(password):
- 客户端凭证(client credentials)
十四:type of 和instance of 区别
type of 用来判断数据类型:
返回数据类型的字符串:
"number", "string","boolean","object","function","undefined"
instance of 用来判断某个对象是不是另一个对象的实例。
下面的例子用来判断object和array:
var obj = {"k1":"v1"};
var arr = [1,2];
console.log("对象的结果:"+(obj instanceof Array));
console.log("数组的结果:"+(arr instanceof Array));
十五:pm2 restart 和reload的区别(配置文件的重载 重启)
restart
,其杀死并重新启动该过程,reload
实现了0秒停机重新加载(始终保持至少一个进程在运行)
十六:MySQL 读写分离
十七:pm2如何查看指定三个项目的日志
十八:深拷贝 浅拷贝
十九:路由机制
二十:MySQL 批量更新
二十一:登录流程
二十二:cookie 和session
二十三:基本数据类型 引用数据类型 区别
基本数据类型:Number String Boolean Null Undefined(栈内存)
引用数据类型:Object 包括:object array function (堆内存)
二十四:防止sql 注入
1.使用escape() 对传入参数进行编码
2.使用connection.query ()的查询参数占位符
3.使用escapeId()编码SQL查询标识符
4.使用mysql.format()转义参数:
二十五:require()模块加载机制
先判断是否存在文件缓存区中,存在直接导入,没有的话,在判断是否是原生模块,
如果是原生模块,再看是否在原生模块缓存区中,如果有直接导入,没有的话加载原生模块,缓存原生模块,在导入
如果不是原生模块,先查找文件模块,根据扩展名载入文件模块,缓存文件模块,在导入
二十六、module.exports 与exports,export 与export default之间的关系和区别
1.exports 是module.exports的引用
2.module.exports初始值是一个空对象{},所以exports的初始化值也是{}
3.require引用模块后,返回的是module.exports
4.exports.xxxx相当于给导出对象上直接挂载属性,该属性直接对引用模块可见
es6之后使用export和import来导出、导入模块
使用export default命令,为模块指定默认输出。
nodejs面试总结相关推荐
- 前端简历编写思路分享
前端简历 分析过程 过程一 看技术栈和项目经历,是否匹配当前工作 看工作年限和技能是否匹配 如有博客或开源,则点开看一下,内容是否有价值 过程二 一目十行地看,寻找亮点 如找到亮点,则再详细看看简历 ...
- nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】
Redis面试官喜欢问的,小伙伴们看完暴答面试官!!! Redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高性能键值对(key-value)的内存数据库,性能优秀,数据在内 ...
- nodejs express use 传值_再也不怕面试官问你express和koa的区别了
前言 用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下. 老实说,还没看express.js源码之前,一直觉得express.js还是很不 ...
- nodejs 前端 返回数组给_互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结...
△ 是新朋友吗?记得先点web前端学习圈关注我哦- 题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发. 年中的时候因个 ...
- 前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs)
前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs) 一. HTML 1. 盒子模型 是什么:每个元素被表示为一个矩形的盒子,有四个部分组成:内容(content ...
- nodejs的 面试大全 容易 难的都有
1.如何区分数组和对象? 方法一:通过 ES6 中的 Array.isArray 来识别 Array.isArray([]) //true Array.isArray({}) //false 方法二: ...
- Vue、Nuxt服务端渲染,NodeJS全栈项目,面试小白的博客系统~~
Holle,大家好,我是李白!! 一时兴起的开源项目,到这儿就告一段落了. 这是一个入门全栈之路的小项目,从设计.前端.后端.服务端,一路狂飙的学习,发量正在欣喜若狂~~ 接触过WordPress,H ...
- Debug Your Life!关于学习、面试和工作成长(附B站录播)
Debug Your Life:江水 直播概要 江水 1. 某互联网公司一线工程师 2. 代码写的跟屎一样(大佬不要闹!),指点江山一套一套的 如何学习 1 了解互联网 1.1 程序员都有哪些领域? ...
- 分享 10 道 Nodejs 进程相关面试题
通过对以下 10 个面试题的分享,助您更好的理解 Node.js 的进程和线程相关知识 作者简介:五月君,Nodejs Developer,热爱技术.喜欢分享的 90 后青年,公众号 "No ...
最新文章
- input 强大的 input 标签
- spring集成mongodb通过aop记录业务日志
- Java将弃用finalize()方法?
- 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...
- STC89C52单片机 数码管静态显示
- RXJava by Example--转
- svg配合css3动画_带有Adobe Illustrator,HTML和CSS的任何网站的SVG动画
- 一个人成为废材的9大原因
- postmapping注解参数说明_从零搭建后端框架:优雅的参数校验Validator
- 六一特辑丨“我的礼物我开发”这群小朋友在用新的方式对话未来
- Android自定义控件学习(五)-------自定义绘图
- java 直播_一对一直播源码开发过程中区分Java和PHP的重要性
- java随机抽题系统_什么样的考试场景需要使用随机试卷模式?
- 100阶乘c语言如何实现,求10000的阶乘(c语言代码实现)
- C# 登陆验证码工具类VerifyCode
- 非线性方程求解 matlab,MATLAB应用 求解非线性方程
- 道德经和译文_道德经 - 道德经全文及译文 - 道德经全文 - 老子道德经
- 黑龙江省牡丹江市谷歌高清卫星地图下载
- 国外LEAD赚钱提现到WMZ,附赚钱项目
- Linux ssh登陆命令