前言

  1. 不废话直接官网下载安装
  2. windows安装很简单,双击ok. 完成后命令行输入node -v. 会提示版本号,说明安装成功(Node.js 还自动附带安装了 npm,类似ruby的gem)。
  3. linux安装。对于linux我是菜鸟,并且安装要麻烦一些,俺废了一天的劲终于在centos下安装完成。后来一问才知道人家大神都是直接命令行的那种系统,瞬时崩溃了。 大概总结下来就是:注意python的编译环境,时刻注意自己的权限够不够。

4. sublime text  一个灰常不错的编辑器.   使用入门

开始干活

1. 来个helloworld

创建test.js   输入:console.log('hello world');

打开命令行到你的当前目录(test.js所在目录),执行  node  test.js   回车。

如下图所示  

2.  $ node -e "console.log('Hello World');"

Hello World

        3.   $ node

>console.log('hello world');

Hello World

undefind

需要注意的地方:第一句话是打印的结果,第二句话是说函数返回值。

4.  创建httprequest如此简单

a. 新建test1.js.  拷贝如图代码, node test1.js.

b. 打开浏览器,输入   http://localhost:3000/  可以看到效果。web版hello world.

var http = require('http');

http.createServer(function(req,res){

  res.writeHead(200,{'content-type':'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>hello world</p>');
}).listen(3000); console.log('http server is listening at port 3000');

这个模块中第一句话 require('http').  是应用node.js中的http模块。 凡是node.js提供的模块均可以直接require.

5. 通过上面运行,可以看到和asp.net 有一些不同。 asp.net 是通过浏览器发出请求->IIS->解析渲染成html返回。 而node则直接面向浏览器。

总结

         1. node.js不是javascript库,和jquery、extjs不能相提并论。node.js是让脚步运行在服务端的平台.

2.  npm是node.js包管理器,可以全局安装,也可以只安装到工作目录。重复利用的一般选择全局安装,而本地安装则一般是当前程序使用。

3.  在windows下安装,会在自动配置环境变量。所以可以直接输入node命令。

4.  第三方包够不够多:

npm)Total Packages: 49 639

node.js够不够活跃

1 154 560 downloads in the last day
29 060 396 downloads in the last week

5. node.js架构:  说实在的这张图我看到node下层接口,在向下就看不懂了,V8我还知道一些,google浏览器就是基于v8引擎开发,而javascritp在google运行良好,所以我也更好的理解了node.js。

来自Node.js开发指南

5. 事件驱动,异步:

a. nodejs内部是单进程,单线程的方式运行。nodejs通过单线程维护一个事件循环队列来应对http并发的访问,同时也避免了进程/线程之间的切换。那么对未来服务器的多核时代、甚至是众核nodejs是怎么处理的。我的理解是nodejs调用C++代码,c++代码实现多线程,这样暴露api供nodejs使用者调用,实现充分利用cpu。后来看到文章(nodejs多线程,真正的非阻塞),更坚定了学习node的信心。

b. 放眼望去全是callback.   同步和异步就是 m+n  和  max(m,n)。这样node.js开发就要求我们转换开发思路。

6. 为什么要趁热,看很多资料发现都调试不过,我就各种查询也了解了很多知识,才可以调试通过。

7.  node擅长干什么,不擅长干什么?

nodejs为网络而生,剩下的就不用说了。

nodejs不适合做什么? (以下内容来自nodejs开发指南)

a. 计算密集型的程序

b. 单用户多任务型应用

c. 逻辑十分复杂的事务

d. unicode与国际化

8. 有问题还是去 stackoverflow

9. 中文资料汇总

参考资料:

深入浅出node.js

node.js学习指南

下一站:

使用express创建一个网站,数据库使用mongodb.

模板使用ejs.

趁热打铁学node的更多相关文章

  1. 从零开始学node(一): nodejs开发环境的配置

    从零开始学node系列(一): nodejs环境安装 一.安装node.js 1. node官网,node安装十分方便快捷,所以这一步还是很顺利的. 2. webstorm是一款强大的前端开发IDE, ...

  2. 打算写一个《重学Node.js》系列,希望大家多多支持

    先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js ...

  3. 一起来学node.js吧 node school简介

    node.js这几年火爆的简直丧心病狂,去lagou.com查查node.js的职位,那叫一个多. 要说火爆到什么程度,竟然有一个网站专门去教大家学习node.js, Node School. 进去逛 ...

  4. 让我们一起学Node.js-文章列表

    新浪的博客最近不给力,只好在博客园落个窝.至此之后,技术随笔会在博客园以及新浪的博客上同时更新,如果新浪给力的话~~~ 如果你想看先前新浪博客上分享的技术,请点击此处 忘尘子新浪博客! 我是拜读了朴灵 ...

  5. .NET程序员也学Node.js——初识Node.js

    清明在石门休了八天假,一眨眼,4月又到中旬了...看到.NET在天朝彻底沦陷而又无能为力,我开始尝试去学习一些新的东西来充实自己,我自然是打死不会去学java的,没有为什么,于是乎,最近开始学习一些前 ...

  6. 为什么 2020 还要学 Node.js

    更佳阅读体验 https://www.yuque.com/sunluyong/node 前言 前些日子刷知乎看到个 2019 年初的问题 2019年nodejs凉了吗?凉到什么程度了?才看到问题的时候 ...

  7. 手把手教你学node.js 之使用 eventproxy 控制并发

    使用 eventproxy 控制并发 目标 建立一个 lesson4 项目,在其中编写代码. 代码的入口是 app.js,当调用 node app.js 时,它会输出 CNode(https://cn ...

  8. 手把手教你学node.js之使用 superagent 与 cheerio 完成简单爬虫

    使用 superagent 与 cheerio 完成简单爬虫 目标 建立一个 lesson 3 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/ 时,输出 CNo ...

  9. 手把手教你学node.js之学习使用外部模块

    学习使用外部模块 目标 建立一个 lesson2 项目,在其中编写代码. 当在浏览器中访问 http://localhost:3000/?q=alsotang 时,输出 alsotang 的 md5 ...

随机推荐

  1. yum怎么用?

    一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...

  2. Focal Loss for Dense Object Detection 论文阅读

    何凯明大佬 ICCV 2017 best student paper 作者提出focal loss的出发点也是希望one-stage detector可以达到two-stage detector的准确 ...

  3. 编译环境搭建:Makefile

    前言 长久以来,笔者一直想用一种管理工具,将所编写的测试程序.算法代码以及工程代码统一管理起来.因为有些是用Java写的有些是用C++写的.虽有想法,但却无行动.这又让我想起了昨天晚上看到一部电影里所 ...

  4. Effective STL 学习笔记 Item 18: 慎用 vector<bool>

    vector<bool> 看起来像是一个存放布尔变量的容器,但是其实本身其实并不是一个容器,它里面存放的对象也不是布尔变量,这一点在 GCC 源码中 vector<bool> ...

  5. Struts 2 Tutorial

    Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applicati ...

  6. Java深度复制List内容。

    最近在工作的时候,有一个小需求,需要复制List的内容,然后会改变其中的数据,但是试了几种复制的方法,都是将原有的数据和复制后的数据都改变了,都没有达到我想要的效果. 其中涉及到了 "浅复制 ...

  7. hdu 4642 翻硬币

    在一个n*m的棋盘上 每一个格子都有一枚硬币 1表示正面 0表示反面你每次可以选择一个硬币为正面的点,然后从该点与右下角点形成的矩阵硬币全都反向,直到一个人没有硬币可以选择则输Alice先手 列举了几 ...

  8. USACO 6.5 All Latin Squares

    All Latin Squares A square arrangement of numbers 1 2 3 4 5 2 1 4 5 3 3 4 5 1 2 4 5 2 3 1 5 3 1 2 4 ...

  9. yum安装(sentos7)

    之前我的yum一直出问题,我就重装了yum,这个教程是我亲自测试过,有用的. 链接:http://blog.csdn.net/iamhuanggua/article/details/60140867 ...

  10. synchronized锁优化

    1.自旋锁和自适应自旋锁 sync在JDK1.6之前之所以被称为重量级锁,是因为对于互斥同步的性能来说,影响最大的就是阻塞的实现.挂起线程与恢复线程的操作都需要转入内核态中完成.从用户态转入内核态是比 ...