小丸子总结node.js的一些问题
2016-08-10 19:06
555 查看
原谅我的node.js功底还很弱。
可以使用q的库实现promise或者同步
之前的工大淘APP实现的时候砽的是promise。
网上的大大说:
目前,如果你一定要让你的应用监听80端口的话,你可以有通过在Node应用的前方再增加一层反向代理 (例如nginx)来实现,如下图所示。否则,建议你直接监听大于1024的端口。
nginx在domeos项目的时候使用过啦。代理服务器来接受请求,分发给内网上的服务器。
看完感觉之前太稚嫩了。、
ESLint
自己的代码出错了可以检查到
在单元测试中:Stub是完全模拟一个外部依赖,而Mock常用来判断测试通过还是失败。
测试金字塔指的是: 当我们在编写测试用例时,底层的单元测试应该远比上层的端到端测试要多
我还从来没有测试过。
单线程(并发数大)
事件驱动
异步IO (虽然这会产生很多困扰)
jsV8 引擎 ,执行速度快
这样的话,node.js就比较适合 实时交互(并发多,速度快) & 数据量很小的交互(避免阻塞) &后台数据处理逻辑简单(后台处理很久,会阻塞)
博客系统还是很符合的。
大二的时候使用PHP开发过一个电商管理系统,当时实现的时候也是模拟了一个路由界面(相当于MVC中的controller层),但是还是觉得逻辑上有些混乱。
今年用node.js写工大淘的时候,使用express框架,感觉田生就是以路由为中心的。写起来逻辑很清晰。
node.js还适合做中间件,接受http请求,转发给真正的服务器。利用了它强大的并发能力和路由。
如果后台计算量特别大等CPU密集业务,还是交给php来实现吧。
我曾经在群里问大大:如何在node.js中实现同步。
大大说:node.js本身就是异步的,这是它的特点,你要倒行逆施吗。
我才明白,我用类库,来限制node.js下的所有任务都同步执行,那我用node.js是干什么呢?我直接使用php不就好了。
后来发现,在node.js中有一两层嵌套还是可以忍受的,然后使用promise来限制一些逻辑。放弃使用同步流程控制。
导出
引用
其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。
修改rocker.js如下:
再次引用执行rocker.js
报错
如果你想你的模块是一个特定的类型就用Module.exports。如果你想的模块是一个典型的“实例化对象”就用exports。
所以说如果使用Module.exports的话,就必须是特定的类型了。那还是算了吧。
推荐使用 exports。
这里有工具可以检测。内存泄露定位工具。
1.什么是错误优先的回调函数?
设计一个回调函数的时候,第一个参数是err,用于优先解决错误,后面再传递参数。fs.readFile(filePath, function(err, data) { if (err) { //handle the error } // use the data object });
2.如何避免回调地狱?
可以使用promise可以使用q的库实现promise或者同步
之前的工大淘APP实现的时候砽的是promise。
3.如何用Node来监听80端口?
只有超级用户权限才可以监听80用户端口,普通用户权限减一还是监听1024以上端口吧。网上的大大说:
目前,如果你一定要让你的应用监听80端口的话,你可以有通过在Node应用的前方再增加一层反向代理 (例如nginx)来实现,如下图所示。否则,建议你直接监听大于1024的端口。
nginx在domeos项目的时候使用过啦。代理服务器来接受请求,分发给内网上的服务器。
4.什么是事件循环?
http://www.ruanyifeng.com/blog/2014/10/event-loop.html看完感觉之前太稚嫩了。、
5.哪些工具可以用来保证一致的编程风格?
JSLintESLint
自己的代码出错了可以检查到
7.使用NPM有哪些好处?
管理依赖8.什么是stub?举个使用场景?
大大说:在单元测试中:Stub是完全模拟一个外部依赖,而Mock常用来判断测试通过还是失败。
9.什么是测试金字塔?对于HTTP API,如何利用测试金字塔?
大大说:测试金字塔指的是: 当我们在编写测试用例时,底层的单元测试应该远比上层的端到端测试要多
我还从来没有测试过。
10.你最喜欢的HTTP框架,并说明原因?
express。因为只用过这一个。11.你觉得 Node.js 与PHP比较,在做一个博客网站,你觉得谁更适合,又为什么?
node.js特点单线程(并发数大)
事件驱动
异步IO (虽然这会产生很多困扰)
jsV8 引擎 ,执行速度快
这样的话,node.js就比较适合 实时交互(并发多,速度快) & 数据量很小的交互(避免阻塞) &后台数据处理逻辑简单(后台处理很久,会阻塞)
博客系统还是很符合的。
大二的时候使用PHP开发过一个电商管理系统,当时实现的时候也是模拟了一个路由界面(相当于MVC中的controller层),但是还是觉得逻辑上有些混乱。
今年用node.js写工大淘的时候,使用express框架,感觉田生就是以路由为中心的。写起来逻辑很清晰。
node.js还适合做中间件,接受http请求,转发给真正的服务器。利用了它强大的并发能力和路由。
如果后台计算量特别大等CPU密集业务,还是交给php来实现吧。
12.你觉得异步编程会带来哪些困扰,那异步代码又有哪些优点?
的确遇到了很多困扰,之前的博客中也提到过解决方法之类的。我曾经在群里问大大:如何在node.js中实现同步。
大大说:node.js本身就是异步的,这是它的特点,你要倒行逆施吗。
我才明白,我用类库,来限制node.js下的所有任务都同步执行,那我用node.js是干什么呢?我直接使用php不就好了。
后来发现,在node.js中有一两层嵌套还是可以忍受的,然后使用promise来限制一些逻辑。放弃使用同步流程控制。
13. Node.js的模块包管理require的使用,exports与module.exports之前区别与联系。
之前一直这么用:导出
exports.name = function() { console.log('My name is Lemmy Kilmister'); };
引用
var rocker = require('./rocker.js'); rocker.name(); // 'My name is Lemmy Kilmister'
其实,Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。
修改rocker.js如下:
module.exports = 'ROCK IT!';
exports.name = function() { console.log('My name is Lemmy Kilmister'); };
再次引用执行rocker.js
var rocker = require('./rocker.js'); rocker.name(); // TypeError: Object ROCK IT! has no method 'name'
报错
如果你想你的模块是一个特定的类型就用Module.exports。如果你想的模块是一个典型的“实例化对象”就用exports。
所以说如果使用Module.exports的话,就必须是特定的类型了。那还是算了吧。
推荐使用 exports。
14.你了解Node.js的内存泄漏吗?
回调函数没有执行完毕,一直留在人物队列的时候,就形成闭包,内部的数据就一直占有内存。如果数据多了,会产生内存泄漏!这里有工具可以检测。内存泄露定位工具。
相关文章推荐
- 我用的一些Node.js开发工具、开发包、框架等总结
- Node.js爬虫数据抓取 -- 问题总结
- linux安装,配置,使用Node.js问题总结
- JS学习中遇到的一些问题总结
- nodejs express 安装需要注意的一些问题
- 我用的一些Node.js开发工具、开发包、框架等总结,node.js开发包
- 卸载之前node.js,采用nvm后npm install及打包编译遇到的一些问题
- 总结几道关于Node.js的面试问题
- Node.js 中 source map 使用问题总结
- Node.js爬虫数据抓取乱码问题总结
- 总结Node.js中的一些错误类型
- java工程中一些js问题总结
- Node.js 中 source map 使用问题总结
- js 关于node节点的一些总结
- 小丸子总结jquery的一些问题
- 总结Node.js中的一些错误类型
- 总结骏汇项目的一些js逻辑问题(二)之添加意向银行并可排序
- 记录一下今天安装node.js以及npm install的一些问题
- Node.js平台的一些使用总结