nodejs的一些问题理解
来源:互联网 发布:数据分析师能力要求 编辑:程序博客网 时间:2024/06/05 18:33
1.什么叫Nodejs的阻塞式设计?与Apache+Php有什么区别
nodejs是单线程设计的,它的异步也就是非阻塞体现在IO上,基于事件机制,充分利用回调函数,并且通过闭包解决异步带来的函数定义和函数运行时上下文不一致的问题。然后nodejs对与cpu密集型运算依然会阻塞线程,这时候需要用类似html5的WebWorker来解决。
apache是利用多进程或多线程(取决于配置)来提供并发服务的,但是会相当消耗主机的内存,所以这是nodejs着眼想要改进的重点。php只是apache调用的解释器,php的运行本身就是阻塞式的,只是apache会开多个进程达到并发。nginx的并发性能还要好些,线程级,能够支持高达50000个并发连接数。
单线程。同时处理请求体现在IO上,只有真正获取到数据之后才会执行回调函数,所以不会因为等待数据取回而造成堵塞。另外在nodejs内部其实也是多进程/线程的(Of course, on the backend, there are threads and processes for DB access and process execution. ),所以请求数据(在还没有触发回调函数前)能够做到并发。
3.Nodejs如何处理抛出的error的?
异步的话基于事件机制,process.on('uncaughtException',function(err){...}) 和 domain 。 同步的话try/catch。
4.Nodejs中如何暴露接口
在模块中定义exports.xxx = xxx,或者module.exports = xxx。 具体可以是一个类或者函数或者变量。
5.Nodejs的管道
nodejs有一个stream的模块,require("stream"),其本身也被别的模块继承,比如fs。通过管道可以避免缓存这一步,而且底层一点的readable stream和writeable stream更是可以监听读入和写入操作。
6.Nodejs的路由
nodejs的路由并没有专门的机制,只是一种默认的规范。引入url这个模块后,可以解析出url中的参数,然后进行相应操作。一般文件分为index.js,server.js,router.js,handler.js四种,router.js定义在什么样的参数下使用什么样的handler,通过index.js传入server.js,server.js解析出url参数后调用router。
7.关于数据库,基础概念,不过我们现在用的是mongodb,属于nosql。教程我看这个mongodb还可以,了解一下即可
感觉mongodb就是一个BSON查询器?快速找到你想要的键。
0 0
- nodejs的一些问题理解
- nodejs的一些理解
- 【nodejs】数据解析处理的一些问题
- 一些没有理解的问题?
- 理解NodeJS的EventLoop
- 理解Nodejs的Buffer
- 01nodeJS的理解
- nodejs的一些说明
- Nodejs一些初识问题总结
- nodejs express 安装需要注意的一些问题
- linux中初学nodeJs遇到的一些问题
- JAVA编码问题的一些理解
- JAVA编码问题的一些理解
- JAVA必须要理解的一些问题
- 一些小问题的理解(1)
- 一些小问题的理解(2)
- 【2】KMP算法的一些理解问题
- 关于iOS push一些问题的理解
- UNIX/Linux---ln 命令详解
- 杭电5146题
- 【leetcode SQL】Second Highest Salary
- httpclient3.x中使用HTTPS的方法
- 无缝滚动
- nodejs的一些问题理解
- UVa 10082 - WERTYU
- snmp编程特点小结
- 有喜有忧
- 不急不躁修硬盘
- 简易日历
- Cloudera CM5.3.1&CDH-5.3.0集群安装
- 三大顺序容器的简单使用与异同
- 安装spark