nodejs【伪】入门教程

声明:

  1. 本文适合白的不能再白的小白
  2. 不要被标题误导,本文不会讲nodejs基础,只是本人学习流程和资料的一个整合
  3. 如果想找一大堆教程自己看,没有电梯,自己拉到文章最下方吧

一、nodejs是什么

前段时间,偶然得到了一次跟几个大牛学长学习的机会,他们正在做一个startup的项目,构建网站所使用的就是nodejs;对这个最近牛哄哄的东西,自己也只是略有耳闻,从何下手呢,打开百度,google一下。

首先,nodejs不是一种什么编程语言,而是一个可以让javascript运行在服务器端的平台,至于什么nodejs由c++编写,基于google chrome的v8引擎,一概忽略;你需要知道的是,以前你用php/java写服务器端的代码,现在可以使用nodejs完成,而且不需要太多的新知识。

if(足够熟悉js){

go on……

}else{

window.location(‘http:www.baidu.com‘);

and search ‘javascript 入门教程‘+去吧-_-;

}

其次,使用nodejs开发你可以使用windows/linux/macos,任何一个环境,但是用windows感觉怪怪的,推荐linux(such as ubuntu).至于安装什么的,自己解决吧。

接下来你最想知道的可能就是,我现有的工具做开发,挺好的,你有啥么理由让我转到nodejs这来呢? 所以看看nodejs能干什么吧。

二、nodejs能干什么

Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。(摘)当前的服务器程序有什么问题?我们来做个数学题。在 Java™ 和 PHP 这类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2 MB 的配套内存。在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户。随着您的客户群的增长,如果希望您的 Web 应用程序支持更多用户,那么,您必须添加更多服务器。除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。鉴于上述所有原因,整个 Web 应用程序架构(包括流量、处理器速度和内存速度)中的瓶颈是:服务器能够处理的并发连接的最大数量。

Node 非常适合以下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

总结起来就是:其它服务器端语言能干的它几乎都能胜任,而且这货能处理高并发,节省服务器成本。而它又不是诸如apache这种服务器软件的一个替代品,它的理想目标是:提供高度可伸缩服务器。

看到这又晕了是么?别管了,看看自己创建一个服务器,处理request、response是什么感觉吧。

三、怎么学nodejs

1. 需要哪些基础

js的基础是必须的,而且并不是简单的了解就可以,前端的东西也必须掌握把,不然你怎么构建一个完整的网站应用呢。

2.从哪里下手

当时学的时候,苦于国内没有一个很好的教程,也不能说教程不好,可能他们都是站在一个相对较高的视角去讲述这个东西,一下就来了一大堆东西在那讲,想看视频学的同学暂时还是不要有这个想法了,基本上没有适合入门的教程,如果你非要找,英语水平可以的话,51cto上有一个我感觉还不错:

1>nodejs基础

2>基础过关了,进阶使用框架

你可能想去尝试创建一个自己的应用,那就要介绍express了,这也是在开发一个大型项目中必须要用到的,但如果你足够任性我也没办法。express是nodejs的一个框架,就像你用基本java web知识可以构建网站,但使用SSH可以更快、更清晰。就像你学PHP,直接建站没问题,但是有像YII,tp等等的框架,很多轮子就不需要你重复造了。

express也是同样的道理,作者参考了Ruby的Sinatra.rb,完成了一个基于nodejs的实现(此句可忽略),有了基础就要实践了,上面的教程可能也或多或少讲到express,但是上面就把重点放在nodejs基础上,下面才是express:

  • 如果你暂时还不想看官方文档,可以先看看阮一峰阮大大的《Express框架》    http://javascript.ruanyifeng.com/nodejs/express.html
  • 然后呢,你就可以创建一个博客应用试试了,来吧跟着做(发现这个教程的时候,有种相见恨晚,要的就是你的感脚)url:https://github.com/nswbmw/N-blog/wiki
  • 但是官方文档是不能不放在这里地,有问题先看看手册吧:http://expressjs.com/

3>前端怎么办

上面的内容都搞定了,前端难道还是用html么,呵呵,被你猜对了,还是html,只不过是换种方式写html,前端的模板引擎目前有EJS、Jade、React等。

ejs就不用学了,就是换了个宽展名,语法完全没变,服务器端渲染时候可能传递一些数据,你所要学的只是简单的几个小语法来处理这些数据和逻辑,参考官方文档即可:http://www.embeddedjs.com/

jade我个人不喜欢,那种靠缩进、空格、换行来组织代码的小shit,不习惯,不多讲,想学的,自行google吧。

react并不算是一个完整的MVC框架,也就算是V,对C算是有锦上添花的作用吧,组件化的开发思路,这也应该是一个趋势,“在js中写html,你感受感受”。

" 在Web开发中,我们总需要将变化的数据实时反应到UI上,这时就需要对DOM进行操作。而复杂或频繁的DOM操作通常是性能瓶颈产生的原因(如何进行高性能的复杂DOM操作通常是衡量一个前端开发人员技能的重要指标)。React为此引入了虚拟DOM(Virtual DOM)的机制:在浏览器端用Javascript实现了一套DOM API。基于React进行开发时所有的DOM构造都是通过虚拟DOM进行,每当数据变化时,React都会重新构建整个DOM树,然后React将当前整个DOM树和上一次的DOM树进行对比,得到DOM结构的区别,然后仅仅将需要变化的部分进行实际的浏览器DOM更新。"想想不就应该这样么。

学长跟我说,React水很深,如果能成为专家,前途无量。听得心潮澎湃呢 :) ,不管怎么说react入门确实有一定的难度,

小结:

看完这些基本上对nodejs的知识有一个完整的体系了,如果基础不好,也没了解过python这样的语言,对于nodejs这种所谓基于事件的异步式编程可能让你很是痛苦,看人家的代码,可能发现好多东西不知道,没关系那些依赖库都是nodejs社区大家贡献的,每个拿来用就可以了,并不需要专门研究,也不用感觉好像东西很杂,便心生烦躁,想放弃,这也只是一个过程,纠结过后就拨开云雾见青天了。

附录:

  1. 资料一:知乎,怎样有效地学习 Node.js:http://www.zhihu.com/question/19793473
  2. 资料二:quora: http://www.quora.com/What-are-the-best-resources-to-learn-Node-js
时间: 2024-10-10 23:17:34

nodejs【伪】入门教程的相关文章

avalonjs1.5 入门教程

迷你MVVM框架 avalonjs1.5 入门教程 avalon经过几年以后,已成为国内一个举足轻重的框架.它提供了多种不同的版本,满足不同人群的需要.比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVVM的乐趣.avalon.modern.js支持IE10以上版本,优先使用新API,性能更优,体积更少.avalon.mobile.js在avalon.modern的基础提供了触屏事件的支持,满足大家在移动开发的需求.此外,它们分别存在avalon.

迷你MVVM框架 avalonjs 入门教程(司徒正美)

迷你MVVM框架 avalonjs 入门教程 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定属性与动态模板 作用域绑定(ms-controller, ms-important) 模板绑定(ms-include) 数据填充(ms-text, ms-html) 类名切换(ms-class, ms-hover, ms-active) 事件绑定(ms-on,……) 显示绑定(ms-visible) 插入绑定(ms-if) 双工绑定(ms-duplex) 样式绑定(ms-css) 数据绑

Webpack新手入门教程(学习笔记)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang TC Semibold"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0

(转)前端构建工具gulp入门教程

前端构建工具gulp入门教程 老婆婆 1.8k 2013年12月30日 发布 推荐 10 推荐 收藏 83 收藏,20k 浏览 本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步:安装Node 首先,最基本也最重要的是,我们需要搭建node环境.访问http://nodejs.org,然后点击大大的绿色的install按钮,下载完成后直接运行程序,

Node.js 入门教程 (二):模块

由于新工作要做前端,作为前端小白而且能尽快学习,所以选择慕课网的node.js的入门教程.博客只做自己学习的记录. JavaScript缺少模块管理机制,容易出现变量被覆盖,方法被替代的情况(既被污染).特别是存在依赖关系时,容易出现错误.采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行. CommonJs是一套规范,包括了modules,system,encodings,unit test等等来约定JavaScript应该怎么去组织和编

WebSocket入门教程(五)-- WebSocket实例:简单多人聊天室

from:https://blog.csdn.net/u010136741/article/details/51612594 [总目录] WebSocket入门教程--大纲 [实例简介] 本文,我们通过nodejs和javascript实现一个网页聊天室的demo.主要包括,聊天,改用户名,查看其他用户在线状态的功能.大致流程为,用户访问网页,即进入聊天状态,成为新游客,通过底部的输入框,可以输入自己想说的话,点击发布,信息呈现给所有在聊天的人的页面.用户可以实时修改自己的昵称,用户离线上线都会

OpenLayers 3 入门教程

OpenLayers 3 入门教程摘要OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计.版本2虽然被广泛使用,但从JavaScript开发的早期发展阶段开始,已日益现实出它的落后. OL3已运用现代的设计模式从底层重写. 最初的版本旨在支持第2版提供的功能,提供大量商业或免费的瓦片资源以及最流行的开源矢量数据格式.与版本2一样,数据可以被任意投影.最初的版本还增加了一些额外的功能,如能够方便地旋转地图以及显示地图动画. OpenLayers 3同时设计了一些主要的新功

npm 与 package.json 快速入门教程

npm 与 package.json 快速入门教程 2017年08月02日 19:16:20 阅读数:33887 npm 是前端开发广泛使用的包管理工具,之前使用 Weex 时看了阮一峰前辈的文章了解了一些,这次结合官方文章总结一下,加深下理解吧! 读完本文你将了解: 什么是 npm? 安装 npm 更新 npm package.json 文件 package.json 如何创建 package.json 的内容 指定依赖的包 Semantic versioning(语义化版本规则) 安装 pa

gitbook 入门教程之小白都能看懂的 Gitbook 插件开发全流程

什么是插件 Gitbook 插件是扩展 GitBook 功能(电子书和网站)的最佳方式. 只要是 Gitbook 默认没有提供的功能,基于插件机制都可以自行扩展,是插件让 Gitbook 变得更加强大. 本文将全面介绍插件的相关知识并重点介绍插件开发的全流程,只有熟悉插件开发流程才能做到有的放矢,心中有数,进而开发出自己的插件. 关于插件请参考 Gitbook 入门教程高级进阶系列文章,本文重点讲解开发 Gitbook 的基本流程. gitbook 入门教程之插件介绍 gitbook 入门教程之