目录

  • 1 基于node.js+Express.js+Jade+Mong
    1. 01.初识node.js

      00:42:09

基于node.js+Express.js+Jade+MongoDB开发Web即时聊天系统

1013人在学
公众号二维码

公众号

小程序二维码

小程序

课程详情

我要提问

 

一、课程背景

 

1.什么是Node.js ? 

Node.js 是一个可以快速构建网络服务及应用的平台 。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对Google V8引擎(应用于Google Chrome浏览器)进行了封装。

 

V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

 

例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地处理二进制数据。因此,Node不仅仅简单地使用了V8,还对其进行了优化,使其在各环境下更加给力。

 

 

2. 为什么要使用Node.js ?

V8引擎本身使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度获得了极大提升,却节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

 

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。

 

虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。


3.Node.js的优点

nodejs作为一个新兴的后台语言,有很多吸引人的地方:

优点一、RESTful API

优点二、单线程

优点三、Node.js可以在不新增额外线程的情况下,依然可以对任务进行并行处理 —— Node.js是单线程的。它通过事件轮询(event loop)来实现并行操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。

优点四、非阻塞IO

优点五、V8虚拟机

优点六、事件驱动

 

4、 Node.js开发前景

尽管Node.js只出来了四年,但是他是GitHub上面第二热的项目。

自从2013年3月11日发布v0.10以后,每天平均的下载量有35,000次。

nodejs.org的v0.10独立版本已经有超过100万的下载次数。

目前已经有253次以Node.js为主题的讨论。

 

Node发展很快

在indeed.com的工作趋势报告中,对于Node.js, Ruby, Java和Scala显示,Node.js增长了22,500%。

 

在2013年2月,Google搜索趋势显示,Node.js的搜索次数已经超过Ruby on Rails.

 

 

支持Node的公司

鉴于Node.js的日趋成熟,大公司开始在他们的核心业务上应用,并且大小公司将他们的应用成果贡献给开源社区。

以下是贡献前五的公司

StrongLoop: Ben Noorduis, Bert Belder, Miroslav Bajtos, Raymond Feng, Sam Roberts

Joyent: Isaac Schlueter, TJ Fontaine, Bryan Cantrill, Dave Pacheco

Voxer: Fedor Indutny

Microsoft: Scott Blomquist

Mozilla: Trevor Norris

Node是云上的首选语言

尽管相比Java和Ruby来说Node还很新,Node.js已经成为6种主流云平台,其中5种的一等公民。

VMWare CloudFoundry

Red Hat OpenShift

Amazon Elastic Beanstalk

Microsoft Azure

Salesforce Heroku

 

二、讲师介绍

 

幻星:软件开发高级工程师,拥有多年的项目开发经验,先后为多家微型金融公司提供业务解决方案,具有丰富的项目实战经验。善于中小型项目整体实施方案的需求分析、数据库设计、项目实施等。熟悉Node.js开发、HTML+DIV+CSS、JS、jQuery、ASP.NET、MVC、Ajax、安卓开发、PD建模、MSSQL Server、MySql等,现就职于一大型外资企业。

 

 

三、课程适合人群

 

本课程要求学员了解JavaScript,本课程适合希望更深入的学习Node.js,从事Web前端方向开发的大学生朋友,或者希望借助Node.js更优的性能与后台结合生产出更有价值的网站的在职程序员

 

 

四、课程目录

 

第一部分、理论讲解部分:

1、初识node.js

2、node.js特性

3、node.js核心库(console、Timers、util、Event)

4、node.js核心库(Buffer、Stream、FileSystem)

5、node.js核心库(FileSystem、Path、net)

6、node.js核心库(HTTP、URL、Query String)

7、认识NPM和Express

8、JExpress示例,简单页面

9、模板引擎Jade

10、Jade实现MongoDB首页效果

11、认识非关系型数据库MongoDB

12、MongoDB初探、特性

13、MongoDB基础之增删改

14、MongoDB基础之查询

15、MongoDB基础之查询2

16、MongoDB索引

 

第二部分、项目实战部分(匿名聊天网站系统)

17、项目需求分析

18、日志系统Log4js

19、Node中使用MongoDB

20、功能1-管理员登录

21、功能2-后台管理界面

22、功能3-聊天室管理(上)

23、功能3-聊天室管理(中)

24、功能3-聊天室管理(下)

25、功能4-聊天室首页(上)

26、功能点4:聊天室首页(中)

27、功能点4:聊天室首页(下)

28、功能点5:用户注册

29、功能点6:聊天室布局

30、功能点7:通讯模块Socket.io(上)

31、功能点7:通讯模块Socket.io(下)

32、功能点8:分聊天室聊天实现

33、功能点9:聊天室逻辑打通(上)

34、功能点9:聊天室逻辑打通(下)

35、聊天室聊天完善

36、完结:知识总结


五、通过本课程的学习,你能有哪些收获:

1、明白Node.js是做什么的,怎么用;

2、理解npm的使用方式,作用;

3、熟悉多个Node.js的核心模块

4、知道通过模块组合实现对应的功能;

5、简单使用Express,实现Node.js的web开发;

6、熟悉模板引擎Jade的基本用法;

7、简单使用第三方模块log4js;

8、简单使用第三方模块socket.io;

9、认识nosql,简单使用MongoDB;

 

 

 

 

 

 

 

 

 

 

 


评价(0) 立即评论
0/150