声明:本文为原创文章,如需转载,请注明来源并保留原文链接Allong,谢谢!

  “滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。” - 《临江仙·杨慎·明》

  很熟悉的旋律,鸡汤了一下:高考是一个起点,学得好的找到好学校,号称学霸;工作又是一个分水岭,认真做事,勤奋好学,晋身大神。不要太在意过去你得到什么,盯着未来你想要什么?

A-one:创建Node环境

  windows(X64)

    下载安装包,傻瓜式安装,自带npm包管理器(node pakeage manager)带你装逼带你飞。

    V4.6.1传送门:官网下载地址(当前稳定版,新手适用,需翻墙)

    V6.9.0传送门:官网下载地址(包含当前最新特性,官网建议是你是大神就玩一玩,部署还是用上面的版本吧)

    不来个安装页面总觉得对不起谁似的:

    

  POSIX系列:

    Debian/Ubuntu:

sudo apt-get install nodejs

    Redhat/CentOS:

sudo yum install nodejs

    在linux平台上比较坑爹的是,你可能下载到的不会是最新版本,这是为啥呢?为啥呢?为啥呢?Linux版本更新的速度远慢于Nodejs,有种老牛拖破车的感觉,嘿咻嘿咻~

    

    这时候如果你真的追求版本上的升级,且熟悉Linux编译的话,可以使用直接make源代码的方式处理。

    源代码还跨平台咧,感觉就是一个种子.avi,啥播放器都能看,传送门:官网源代码(V4.6.1 需翻墙)。

    上面的系统需要安装apt-get / yum:

    c++编译器:g++ OR c++工具

    Python(2.7.2以上,phython3以下版本,一般系统自带python,版本号自查python --version)

    libssl-dev  SSL/TLS加密支持

    

  MAC OS X:

    传送门:官网下载地址(稳定版V4.6.1,翻墙吧少年)直接安装

    PS:homebrew是另外一种的姿势

    

A-two:The first Node page:Hello World!

  绝大多数程序员的第一个输出:Hello World。

  突然想起在学校混日子打DOTA的日子,当年DOTA还在魔兽世界上,有个大神同学的ID就是Hello Word,DOTA玩得转,代码CODE得溜,大神转身入TX,DOTA依旧在,只是人不同。

  扯远了,看一下代码,写个hello.js文件吧:

 // 调用Node.js提供的http模块
var http = require('http'); // 创建HTTP服务器,监听访问
// @param req 请求对象
// @param res 响应对象,收到请求后要做出的响应
var server = http.createServer( function (req, res) {
// 输出响应头
res.writeHead (, {'Content-Type' : 'text/html'});
// 写内容
res.write('Hello world');
// 结束,如果不写,请求一直处于pedding状态,可注释做测试
res.end();
}).listen(); //监听3000端口 console.log("HTTP Server is listening at port 3000");

   window7 DOS下,切换到hello.js所在路径,执行:

node hello.js

  

  哇擦,骗我,我要报警!node怎么变成supervisor(隐藏调试技能点)了,少年不要方,抱紧我,后面告诉你!

  本地浏览器访问(127.0.0.1的访问一样):

  

  哦,好像还漏了一个supervisor:

  node执行之后的脚本,在你更新脚本内容之后,无论怎么刷浏览器,所得的结果不会改变。这是因为Node.js只有在第一次引用的时候解析脚本之后就把常驻内存,以避免重复Load浪费资源。但是作为Coder,希望每次修改所存即可见,怎么办?

npm install -g supervisor

  利用supervisor来启动脚本,完美调试。

  怎么样,通过这篇学习,你入门了吗?学艺不精,欢迎拍砖~

   部署到本地的vagrant服务器:

  

  浏览器访问:

  

  呵,简单易用,搞定收工!这样搭个API接口环境,就能轻而易举的玩起前后端分离了。

Nodejs入门手记 (01):Hello World的WEB程序的更多相关文章

  1. APP开发手记01(app与web的困惑)

    文章链接:http://quke.org/post/app-dev-fragment.html (转载时请注明本文出处及文章链接) 最近在用博客园的wcf服务做博客园的android和ios的app, ...

  2. .NET零基础入门之01:开篇及CSharp程序、解决方案的结构

    一:为什么选择C# 每个人都有梦想,有些人的梦想就是:成为程序员.最课程(www.zuikc.com)的<零基础c#入门>是试图帮助我们实现这个梦想. 也许你要问:我基础很差怎么办?最课程 ...

  3. Servlet入门(第一个Servlet的Web程序)

    新建maven项目,注意项目的类型 project名为ServletExample 点击Finish.建立maven项目完毕例如以下 生成后的文件夹没有java源代码文件夹.依照maven的约定,还要 ...

  4. 01.Nodejs入门之Helloworld

    说明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 1.新建文件夹helloworld demo, ...

  5. nodeJs 5.0.0 安装配置与nodeJs入门例子学习

    新手学习笔记,高手请自动略过 安装可以先看这篇:http://blog.csdn.net/bushizhuanjia/article/details/7915017 1.首先到官网去下载exe,或者m ...

  6. NodeJS入门(四)—— path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  7. AngularJS快速入门指南01:导言

    AngularJS使用新的attributes扩展了HTML AngularJS对单页面应用的支持非常好(SPAs) AngularJS非常容易学习 现在就开始学习AngularJS吧! 关于本指南 ...

  8. NodeJS入门简介

    NodeJS入门简介 二.模块 在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. const http = require ...

  9. 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用

    [爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...

随机推荐

  1. java中Map,List与Set的差别

    java中Map,List与Set的差别 java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 要深入理解集合首先要了解下我们熟悉的数组: 数组是大小固定的,而且同一个数组 ...

  2. 清理linux 某个文件夹下面所有的log文件

    #!/bin/sh #目标文件夹下面所有问题 target_dir="/app/" #删除2天前新建的后缀为log的文件 -name "*.log" -exec ...

  3. jsp指令和重定向

    1 声明指令 格式:<%!声明变量或函数 %> 作用:会生成一个成员变量或成员方法,也可以使用访问修饰符修饰,public,private,protected 2 注释指令 格式:< ...

  4. MySql按字段分组取最大值记录

    数据库原始数据如下:数据库名:tbl_clothers 需求是:按照type分组,并获取个分组中price中的最大值,解决sql如下: 方法一: select * from (select type, ...

  5. unity, multi pass shader中的surface pass

    今天尝试写一个multi pass shader,但其中有一个Pass是surface pass,总是莫名奇妙地报错.后来看到下面帖子: http://forum.unity3d.com/thread ...

  6. C++中虚基类在派生类中的内存布局

    今天重温C++的知识,当看到虚基类这点的时候,那时候也没有太过追究,就是知道虚基类是消除了类继承之间的二义性问题而已,可是很是好奇,它是怎么消除的,内存布局是怎么分配的呢?于是就深入研究了一下,具体的 ...

  7. javascript原生bind方法ie低版本兼容详解

    上一篇文章讲到了javascript原生的bind方法: http://www.cnblogs.com/liulangmao/p/3451669.html 这篇文章就在理解了原生bind方法的原理以后 ...

  8. 索引长度过长 ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

    1.发现问题 今天在修改innodb表的某个列的长度时,报如下错误: alter table test2 modify column id varchar(500); ERROR 1071 (4200 ...

  9. jQuery实现的层级轮播图

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. IP地址归属地查询

    http://www.ipip.net/download.html#ip_code 下载免费版 IP 地址数据库. 网站下面有官方给出的查找IP地址所属国家.省.市的办法. python版本列出 py ...