面试要点 nodejs篇

1.node有哪些定时功能?

①setTimeout()
②setInterval()
③setImmediate()
④process.nextTick()
process.nextTick它是在同步任务执行完再执行的,而且是所有异步任务里面最快执行的。位于同步任务和微任务之间执行的

process.nextTick(),效率最高,消费资源小,但会阻塞CPU的后续调用;
setImmediate(),消耗的资源小,也不会造成阻塞,但效率也是最低的;
setTimeout(),精确度不高,消耗资源大,可能有延迟执行的情况发生;

2.node.js的核心内置类库(事件流,文件,网络)

核心事件:EventEmitter, Stream, FS, Net和全局对象
EventEmitter:是node中一个实现观察者模式的类,主要功能是监听和发射消息,用于多模块交互问题
Stream:是基于事件EventEmitter的数据管理模式,有各种不同的抽象接口组成,主要包括可写,可读,可读写,可转换等几种类型
内置的fs模块:
①POSIX文件Wrapper,对应于操作系统的原生文件操作
②文件流 fs.createReadStream和fs.createWriteStream
③同步文件读写,fs.readFileSync和fs.writeFileSync
④异步文件读写, fs.readFile和fs.writeFile

3.node中的异步和同步怎么理解

node是单线程,异步是通过一次次的循环事件队列实现的,同步这是阻塞式的IO,在高并发下是一个很大的性能问题,所以同步一般只在基础框架的启动的时候使用,用来加载配置文件,初始化程序

4.有哪些方式可以进行异步流程的控制?

①多层嵌套回调
②为每一个回调单独写一个函数,函数里面再调用
③用第三方框架例如:asymc,q,promise

5.有哪些方法可以防止程序崩溃?

①try-catch-finally
②EventEmitter/Stream error事件处理
③domain统一控制
④jshint静态检查
⑤jasmine/mocha进行单元测试

6.如何绑定node程序到80端口

①sudo启动(因为默认系统不允许非root用户启动1024以下端口)
②apache、nginx代理
③用操作系统的firewall iptables进行端口重定向

7.rest api

①get 用于获取数据
②delete 用于删除数据
③put 用于更新或者添加数据
④post 用于添加数据

8.express、koa、express的区别

框架定义
express基于nodejs平台,快速、开放、极简的web开发框架
koa基于nodejs平台的下一代web开发框架
egg为企业级框架和应用而生
框架特点
expressa.强大的路由 b.专注于高性能 c.超高测试覆盖率 d.http帮助程序(重定向,缓存等)e.内容协商 f.支持14个以上模板引擎 g.快速生成应用程序
koaa.支持回调函数和异步说明 b.使用洋葱圈模型处理中间件,每个中间件都会执行两次,可以轻易实现后置处理逻辑 c.支持content请求执行上下文
egga.基于koa开发,性能优异 b.提供基于egg定制上层框架的能力 c.高度可扩展的插件机制d.内置多进程管理 e.框架稳定,测试覆盖率高 f.渐进式开发
框架缺点
expressa.支持使用异步编码。但大量api和中间件容易形成回调地狱 b.对错误的处理不够优雅
koaa.session、视图模板,路由,文件上传,日志管理等中间件未官方统一,导致解决方案参差不齐
egg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小邓不爱吃芹菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值