学习node.js+express+mongdb精简理解

node.js简而言之是运行在服务端上JavaScript。

优点:事件机制,异步,无阻塞的,轻量高效,单进程线程,占用服务器资源少,高并发支持好。
适用于消息实时推送,聊天系统,社交平台等高并发,I/O密集型。
缺点:

  1. 异步编程的缺点往往就是到处callback,会让人不知所措;

  2. 不适合做企业级应用开发,特别是复杂业务逻辑的,代码不好维护,事务支持不是很好。

事件机制:
参考了(http://www.cnblogs.com/zhongweiv/p/nodejs_module.html#module_exports_diff)这篇文章。
NodeJS被设计用来解决服务端阻塞问题.通过一段简单的代码解释何为阻塞:
Js代码

1. //根据ID,在数据库中Persons表中查出Name  
2. var name = db.query("select name from persons where id=1");  
3. //进程等待数据查询完毕,然后使用查询结果.  
4. output("name")  

node.js如何解决阻塞问题
解决这个问题的办法是,建立一种事件机制,发起查询请求之后,立即将进程交出,当数据返回后触发事件,再继续处理数据:
Js代码

1. //定义如何后续数据处理函数  
2. function onDataLoad(name){  
3.     output("name");  
4. }  
5. //发起数据请求,同时指定数据返回后的回调函数  
6. db.query("select name from persons where id=1",onDataLoad);  

说到底就是一个回调函数的原理。

Express框架建立在node.js内置的http模块上。Express 支持各种模板引擎,express 命令行可以添加对 Jade,EJS,JSHTML 和 Hogan 的支持。
1.设置中间件来响应http的请求;
2.定义了路由用来执行不同的http的请求动作;
3.可以通过向模板传递参数动态渲染html页面。
通过终端命令行或者是webstorm开发工具,可以自动生成一个简单的http的服务器

mongodb是文档型数据库,存储对象及JSON形式的数据,返回一个json对象。
user表:
{‘name’:'Alice',
'age':'18'
}
mongoose是mongodb的建模工具,schema是一个文档数据结构,在mongoose中是json对象,跟mvc中的model相似。
(上班时间就随笔写一下哈~请见谅!写的好粗略,有空再续写。。。(__) -by Alice Ye)

你可能感兴趣的:(学习node.js+express+mongdb精简理解)