vuejs高仿饿了么视频团队对Node.js会问的面试题

这个问题可以看出面试者在Node上的底层知识的深度,如果他知道libuv的话。

  • 使用什么工具检查代码风格?

开发团队项目时,强制指定代码风格和使用静态分析,捕捉常见的错误,这些工具都非常有用。

如果你们谈到了开发大型javascript应用程序,这些他应该知道。

操作错误不是bug,是系统的问题,例如超时或者硬件故障。

另一方面,程序错误(programmer errors)是实际的错误。

这个问题与Node相关,你可以得到关于面试者技术水平的有用信息。

这个命令在部署Node.js应用时是非常有用的——它可以保证所部属的版本就是依赖的版本。

这个问题可以让你对面试者的npm cli和Node.js操作最佳实践知识有更深入的了解。

什么是stub?说出它的用途?

Stubs是模拟模块或组件行为的程序。
Stubs提供已知的答案来调用函数,另外你还可以断言哪个stubs被调用。

这个问题考察面试者的测试知识,如果他不知道什么是Stubs,你可以问他是如何进行单元测试的。

什么是测试金字塔?在做HTTP API的时候要怎么实现?

测试金字塔意思是在写测试时应该编写的底层但愿测试要多于高级的端到端测试。

  • 对你的模型多很多单元测试
  • 在你的模型与其他交互时更少的集成测试
  • 更少的验收测试,在HTTP端

这个问题告诉你面试者在测试上有多少经验,特别是他能在每一个级别给出建议。

你最熟悉的Node框架是什么?为什么?

这个问题没有标准的答案,考察面试者对他所使用的框架的了解深度,包括使用的原因、利弊。


支持类似如下的使用方法(最好包含基本的单元测试):

实现一个简单的测试单元框架

支持类似如下的使用方法(最好包含基本的单元测试):

执行测试后返回类似如下的结果:

本帖回复答案, 会给出指点

老雷(),一登高级后端工程师,作者之一,模块作者,5年Node.js使用经验,GitHub:

欢迎关注我的公众号【node全栈】

嗯 那是因为 data 事件一直没触发

如果使用HTTP访问百度的时候,百度会要求跳转到HTTPS的,你检查是否有正确处理301或302状态码

我也写了一个,见 这模块如果要上生产环境,几个小时是不够用的,要是实现request包的完整功能我就觉得好厉害了 其他几个题也很不错,跟我现在的技术栈正好匹配,今天偷懒,改天再找个时间写写看

自从老大不给我们review代码之后,很多地方都是凭感觉写,写出来莫名其妙,恳请吐槽啊

1是data事件打印的,2是end打印的。。。

我没什么好吐槽的… 你实现的完成度高多了, 错误处理也很完善跟周到, 而且没有像我那样使用 querystring 跟 url 偷懒 Orz…

话说把另外几个题也做了吧, 我也想学习一下~

在8000起本地server,然后等着dump,然后用问题代码去访问8000是吧?

用tcpdump看也行,就是。。。包太多了。。

拿scapy自己做一个专门用来检查HTTP请求的。。。

你们好厉害,看样子窝离15k太远了,还是默默地搬窝的砖。。。

  1. transfer-encoding:chunked这种情况我写了几段代码试图兼容,但写着写着我发现需要看paper才能写下去就删掉了
  2. 其实并没有做错误处理…
  3. 我发现自己应该多去看书ORZ

这个轮子不好造啊… 我现在的项目正是在用python的sock_raw做这个事情… 求交流

接收数据触发data事件时,把chunk添加到数组里面即可,同时判断一下,如果请求头还没有结束就在新收到的chunk里面查找\r\n\r\n,如果找到了就练同之前收到的数据一起,分离出headersbody 你的做法效率会有点低 你的做法是接收完了所有数据才做处理,有时候是不可行的,比如要实现对Transfer-Encoding:chunked的支持

做了一部分 ,汗。。总感觉err那一块处理的不是很好

nodejs新手,快速写出来的,求指导

* 生成SQL语句并且执行 //如需要处理大于小于等其他操作符的情况,可以自行修改

嘿嘿嘿,我也来一发~~ MySQL orm ← 话说ORM不是要建模么 底层使用Promise封装,每次操作从连接池拿连接对象,开始所有数据库操作(也就是调用.table(‘table_name’)时)每次返回一个新的操作实例 _query 对象,这样就可以实现多个查询并行执行了~~ .目前的问题是当有非常多个操作发起时会生成多个操作实例,感觉上有点占内存。。。 ,每次调用前做了一次检查,每次查询必须首先调用table()指定表,然后必须调用CRUD操作方法 find();delete();update();findOne() 指定此次的操作 , 最后选择性调用skip(); limit(); 方法做结果的筛选。实际测试完全通过。 嘛如有不足还请一定提出指正。

我要回帖

更多关于 vuejs高仿饿了么视频 的文章

 

随机推荐