体验nodejs有感

       学习nodejs技术已经有一周时间了,其中有几次想写点东西出来。但是打开编辑器发现第一句话就很不好写。nodejs到底是个什么东西呢?官方的解释就不提了,我来说一下我的理解。nodejs不是一门语言,因为你会发现所有代码都是JavaScript。nodejs也不是一个web框架,nodejs是一个平台,是一个解析器。

       学习nodejs可谓一路坎坷,书就不提了。查了一下图书馆有7种nodejs书籍,40本是全被借出。这个事说明了一个问题,nodejs正在发展,nodejs非常的火热。找不到书,只能在网上找一些教程和博客来看看,没办法系统的学习。但是经过一系列的死磕,还是找到了一些关键词:事件驱动,回调,非阻塞I/O,异步操作。一般在学习node的过程中,你还会接触到一些别的框架和技术,比如jade、ejs、express、grunt、bootstrap。。。。一般的教程没有单独的特别细致专注node本身的。所以我被这些模板引擎、构建工具、前端框架搞的晕头转向。最后自己也晕了,说好的node呢?

       事件驱动机制是Node.js通过内部单线程高效率地维护事件循环队列来实现的,没有多线程的资源占用和上下文切换,这意味着面对大规模的http请求,Node.js凭借事件驱动搞定一切。举例说明一下大致的过程:你去请求nodejs服务器上的资源A,nodejs接受到请求后,调用一个函数去读取磁盘资源A。然后node服务器就不管了,去处理别的请求了。当A资源被读取完毕了,有一个回调函数被插入到nodejs服务队列中。当nodejs运行这个回调的时候,实际上就把A返回给浏览器了。这叫做事件驱动。

       非阻塞式IO的意思是指,在IO操作的同时,不影响其他事件的处理。相当于开辟了一个线程去干这事了。需要注意的是,nodejs可没办法这么做。nodejs是单线程的,只能一口一口的吃东西。说到底还是通过回调实现,和上面举的例子是一个道理。

       学习nodejs需要对JavaScript有个比较深入的理解和学习,闭包、匿名函数、作用域没搞清楚就别尝试了。还有对于后端 技术的了解个人认为也很重要。甚至我觉得nodejs的开发对于web流程的理解程度要求很高。不同于java或者PHP开发,nodejs的很多“web服务器”要做的事情都得自己来做。而且HTTP协议、路由、项目管理、大量的工具选择等等问题都是一种挑战。

        在此记录一下资料地址:

                     http://blog.fens.me/series-nodejs/

              http://www.nodebeginner.org/index-zh-cn.html

              http://nqdeng.github.io/7-days-nodejs/

时间: 2024-09-28 20:19:57

体验nodejs有感的相关文章

WebStrom9 体验nodejs

之前就有体验过 WebStrom8.0.3 版本,确实不错. 最喜欢的是集成了Terminal 很方便的使用NPM,今天装上发现 Terminal 死活打不上字.什么原因! WebStrom9 在win10 环境下 Terminal 不能输入的问题! 莫非是中文输入法?还是系统win10的问题? 又是添加语言 又是添加英文输入法~~ 还是不行~~ 然后就神奇的可以了!

学习NodeJs的第一天-安装环境

之前一直在网上看到NodeJs的话题,由于自身比较喜欢这方面的内容,期间也是有所关注,现在终于决定静下心来学习她了. 这是第一天,安装NodeJs并建立一个简单的例子.(我的系统是Win8) 1.首先,下载NodeJs程序.地址 http://www.nodejs.org/download/,选择Windows Installer 64bit 2.下载下来后,狂点下一步,安装在本地硬盘上.我是安装在了F盘下 F:\NodeJs 3.下载后打开nodeJs command prompt 窗口,在安

Linux 下node.js安装

node.js官网:https://nodejs.org/ 1:下载node.js   地址:https://nodejs.org/download/ 注意:最好使用源码包安装, 2:上传到服务器上面或者使用 wget  http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz 下载到服务器 3:解压文件  tar -xvf node-v0.12.4.tar.gz 进入源码目录:cd node-v0.12.4 4:安装前的配置 ./configure

一、React初体验之NodeJS环境搭建

一.NodeJS安装 我博客中有相关文章,此处不再赘述. 二.相关模块安装 在使用React的时候需要安装一些相关模块: 1.babel npm install babel -g --save-dev (其中,--save-dev表示将babel模块放入当前项目的package.json文件的devDependencies下,表示当前开发环境的依赖模块. --save表示将babel模块放入当前项目的package.json文件的Dependencies下,表示当前运行环境的依赖模块.) bab

NodeJS之Mac初体验

NodeJS之前在Window试用过一下,不过在mac上这种类Unix上属于第一次使用,JavaScript是脚本语言,脚本语言都需要一个解析器才能运行,通常我们在Html页面写的JS,浏览器充当了解析器的角色.而对于需要独立运行的JavaScript,NodeJS就是一个解析器.NodeJS是通过C++语言编写而成,创始人Ryan Dahl最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了C++语言.NodeJS是一种新

nodeJS初体验遇到的坑

由于新公司需要用到nodeJS,就去学了一下.自己先看了一下nodejs百度百科,大致知道它是在服务器端执行的js环境.下面是遇到的坑截图: 第一个坑是安装完nodejs后,path的环境变量会自动配置,我去path路径看了一下,发现路径确实自动添加进去了.所以我就直接在命令窗口执行,结果"不是内部或外部命令".我还以为因为nodejs默认安装在C:\Program Files目录,文件夹有空格的原因,所以把nodejs卸载然后安装在D盘,发现path路径已配置在新的安装目录,但是还是

Nodejs 使用 addons 调用c++ 初体验(一)

纠结很久,决定写一点遇到的"坑". 基础环境:win7-64bit  node(v7.5.0)   这些安装实在是太方便了,自行准备吧. 1. 安装 python(2.7.x ),用npm安装 node-gyp(3.5.0),创建一个文件夹来存放 binding.gyp hello.cc test.js binding.gyp 内容如下: 1 { 2 "targets": [ 3 { 4 "target_name": "hello&qu

Nodejs架构之Express初体验

参考:http://www.cnblogs.com/Darren_code/p/express4.html 本文是基于 node 0.12.7 express 4.13.1 1)安装 npm install -g express npm install -g express-generator 2)创建项目 express myapp cd myapp && npm install npm start 3)目录结构 app.js,程序启动文件 bin,创建项目时已经提到,是真实的执行程序

Node.js 网页瘸腿爬虫初体验

延续上一篇,想把自己博客的文档标题利用Node.js的request全提取出来,于是有了下面的初哥爬虫,水平有限,这只爬虫目前还有点瘸腿,请看官你指正了. // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // 内置文件处理模块 var fs=require('fs'); // 创建一个将流数据写入文件的WriteStream对象 var outstream=fs.createWriteStream('./1.txt'); /