一: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类型数据。

  1. 配合关系型数据库做高速缓存
  • 缓存高频次访问的数据,降低数据库io
  • 分布式架构,做session共享
  1. 可以持久化特定数据。
  • 利用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面试总结相关推荐

  1. 前端简历编写思路分享

    前端简历 分析过程 过程一 看技术栈和项目经历,是否匹配当前工作 看工作年限和技能是否匹配 如有博客或开源,则点开看一下,内容是否有价值 过程二 一目十行地看,寻找亮点 如找到亮点,则再详细看看简历 ...

  2. nodejs redis 过期时间_别在为Redis面试而烦恼了?看完暴答【面试管】

    Redis面试官喜欢问的,小伙伴们看完暴答面试官!!!  Redis 是什么?都有哪些使用场景?Redis 是一个使用 C 语言开发的高性能键值对(key-value)的内存数据库,性能优秀,数据在内 ...

  3. nodejs express use 传值_再也不怕面试官问你express和koa的区别了

    前言 用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下. 老实说,还没看express.js源码之前,一直觉得express.js还是很不 ...

  4. nodejs 前端 返回数组给_互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结...

    △ 是新朋友吗?记得先点web前端学习圈关注我哦- 题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发. 年中的时候因个 ...

  5. 前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs)

    前端面试+学习笔记(HTML+CSS+JavaScript+ES6+Vue+NodeJs) 一. HTML 1. 盒子模型 是什么:每个元素被表示为一个矩形的盒子,有四个部分组成:内容(content ...

  6. nodejs的 面试大全 容易 难的都有

    1.如何区分数组和对象? 方法一:通过 ES6 中的 Array.isArray 来识别 Array.isArray([]) //true Array.isArray({}) //false 方法二: ...

  7. Vue、Nuxt服务端渲染,NodeJS全栈项目,面试小白的博客系统~~

    Holle,大家好,我是李白!! 一时兴起的开源项目,到这儿就告一段落了. 这是一个入门全栈之路的小项目,从设计.前端.后端.服务端,一路狂飙的学习,发量正在欣喜若狂~~ 接触过WordPress,H ...

  8. Debug Your Life!关于学习、面试和工作成长(附B站录播)

    Debug Your Life:江水 直播概要 江水 1. 某互联网公司一线工程师 2. 代码写的跟屎一样(大佬不要闹!),指点江山一套一套的 如何学习 1 了解互联网 1.1 程序员都有哪些领域? ...

  9. 分享 10 道 Nodejs 进程相关面试题

    通过对以下 10 个面试题的分享,助您更好的理解 Node.js 的进程和线程相关知识 作者简介:五月君,Nodejs Developer,热爱技术.喜欢分享的 90 后青年,公众号 "No ...

最新文章

  1. input 强大的 input 标签
  2. spring集成mongodb通过aop记录业务日志
  3. Java将弃用finalize()方法?
  4. 如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...
  5. STC89C52单片机 数码管静态显示
  6. RXJava by Example--转
  7. svg配合css3动画_带有Adobe Illustrator,HTML和CSS的任何网站的SVG动画
  8. 一个人成为废材的9大原因
  9. postmapping注解参数说明_从零搭建后端框架:优雅的参数校验Validator
  10. 六一特辑丨“我的礼物我开发”这群小朋友在用新的方式对话未来
  11. Android自定义控件学习(五)-------自定义绘图
  12. java 直播_一对一直播源码开发过程中区分Java和PHP的重要性
  13. java随机抽题系统_什么样的考试场景需要使用随机试卷模式?
  14. 100阶乘c语言如何实现,求10000的阶乘(c语言代码实现)
  15. C# 登陆验证码工具类VerifyCode
  16. 非线性方程求解 matlab,MATLAB应用 求解非线性方程
  17. 道德经和译文_道德经 - 道德经全文及译文 - 道德经全文 - 老子道德经
  18. 黑龙江省牡丹江市谷歌高清卫星地图下载
  19. 国外LEAD赚钱提现到WMZ,附赚钱项目
  20. Linux ssh登陆命令

热门文章

  1. STM32F103ZE的定时器
  2. openssh7.9 升级笔记
  3. fancyBox入门
  4. 我的第一个网页之----使用HTML编辑器编写HTML文档
  5. 如何挖掘事实真相?向丰田学习 “五WHY分析法”
  6. SharePoint更换数据库服务器
  7. 我是如何拿到Facebook Offer的
  8. 互联网快讯:华为推出女性开发者计划新课;极米优质投影产品获好评;小米汽车正式落户北京经开区
  9. STM32学习笔记之—红外通信
  10. 文石又出了一个阅读器