美文网首页
node面试题

node面试题

作者: 扶搏森 | 来源:发表于2017-11-28 22:44 被阅读0次

    NO1

    大家在开发Node.js的时候都知道异步的嵌套非常麻烦,有人叫回调地域有人叫回调 黑洞,请问如何解决这个问题?

    模式Promise Defferred 如g.js Step wind
    ES6 Generator函数 + Promise 对象
    Async await 函数
    

    NO2

    如何解释NodeJS 适用于IO密集型不适用CPU密集型?

    1.Node还没有简单易用的多核计算接口。Cluster并不是那么好用。
    2.Node的单核效率虽然比传统脚本语言高,但是和C、C++、Java比并没有优势。
    

    NO3

    请画出Node.js的异步事件回调机制的实现,并解释原理。

    alt node运行原理

    NO4

    开完一个完整的Node程序,有UI层、Service层、DAO层、MODEL层等,我们要在交给 QA前需要编写测试用例。测试用例一般遵循测试金字塔(测试金字塔指的是在编写 测试用例时,底层的单元测试应该远比上层的端到端测试要多,如下图)请问在如下 三个阶段,都用什么样的技术进行测试用例的编写。

    alt node 测试
    selenium-webdriver nightwatch(vue)f2etest
    
    mocha supertest
    
    karma PhantomJS + chai
    

    NO5

    有人说Node是玩具,写错一处整个网站就挂。为了解决它你有什么办法么?

    中间件处理掉常见的404 500
    关键函数比如请求进行封装 容错重试等
    全部错误监听 uncaughtException
    

    NO6

    请你写出你知道的HTTP请求报头,并写出常见的HTTP Status Code标明他的含义

    100,200,300,400,500
    

    NO7

    请用KOA2实现基本的服务端,并输出HelloWorld,且实现功能测试。

    const koa=require('koa');
    const app=new koa();
    const result=new Promise(function(resolve,reject){
        setTimeout(function()=>{
            resolve("Hello world");
        },1000);
    });
    app.use(async(ctx,next)=>{
        const start=new Date();
        ctx.body=await result;
    });
    app.listen(3000);
    #测试
    var app=require('app');
    var request=require('supertest).agent(app.listen());
    describe('hello world',function(){
        it('should say "hello world"',function(done){
            request
                .get('/')
                .expect(200)
                .expect('hello world',done);
        })
    })
    

    NO8

    NodeJS使用了Scavenge、Mark-Sweep 、 Mark-compact算法进行垃圾回收,请绘制三种 算法的原理,并描述何种情况下会造成NodeJS的内存泄露,如何检测?

    新生代空间和老生态空间,Scavenge 来新生态空间,Mark-Sweep、Mark-compact来处理老生态空间
    

    NO9

    请你写出你能力范围的一个Node项目文件夹的划分,并标明他的作用

    model 请求层
    views 模块层
    public/assets
    controller
    libs
    config
    

    NO10

    请绘制浏览器实现缓存机制

    浏览器请求->有缓存->是否过期->是->
    Etag(标志)->向web服务器请求if-None-Match
    Last-Modified?->向web服务器请求if-None-Since
    ->服务器决策->200,304
    

    相关文章

      网友评论

          本文标题:node面试题

          本文链接:https://www.haomeiwen.com/subject/vsjybxtx.html