分享 初学者连载系列之十二:安装和测试 Node.js

kevinhua · April 06, 2012 · Last by doitian replied at April 07, 2012 · 3133 hits

系列文章原载于自己的博客,TOPI.CO (http://topi.co) ,某天不小心就 push 错啦,懒得从头再来,上传到 Ruby-China 来,一是方便自己回顾,另外也方便跟我一样的初学者

###NodeJS,服务器端的 JavaScript

{% img /images/nodejs.png 245 66 [Node.js] %}

JavaScript 最早是运行在浏览器中,然而浏览器只是提供了一个上下文,它定义了使用 JavaScript 可以做什么,但并没有“说”太多关于 JavaScript 语言本身可以做什么。事实上,JavaScript 是一门“完整”的语言:它可以使用在不同的上下文中,其能力与其他同类语言相比有过之而无不及。

Node.js 事实上就是另外一种上下文,它允许在后端 (脱离浏览器环境) 运行 JavaScript 代码。要实现在后台运行 JavaScript 代码,代码需要先被解释然后正确的执行。Node.js 的原理正是如此,它使用了 Google 的 V8 虚拟机(Google 的 Chrome 浏览器使用的 JavaScript 执行环境),来解释和执行 JavaScript 代码。

除此之外,伴随着 Node.js 的还有许多有用的模块,它们可以简化很多重复的劳作,比如向终端输出字符串。因此,Node.js 事实上既是一个运行时环境,同时又是一个库。要使用 Node.js, 首先需要进行安装。

###安装 Node.js

wget http://nodejs.org/dist/v0.6.12/node-v0.6.12.tar.gz
tar xzvf node-v0.6.12.tar.gz
cd node-v0.6.12
./configure
make && make install

###测试 Node.js

  • 查看 node.js 版本:node -v

  • 测试 Hello World Script for Node.js:

vim helloworld.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1229, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1229/');

系统会提示:Server running at http://127.0.0.1:1229/,打开浏览器输入127.0.0.1:1229就可以查看效果啦。

###通过 NPM 安装 forever 或 juggernaut

  • 安装 npm (如果权限不够,可以将sh改为sudo sh)
curl http://npmjs.org/install.sh | sh

  • 使用 npm 安装 forever 和 juggernaut
npm install forever -g
npm install juggernaut -g

  • 在 Rails 中使用 juggernaut

在 Gemfile 中加入:gem juggernaut

node.js 在 rails 中负责什么?

#1 楼 @lidashuang 装了 node 就有 execjs 环境了,有些服务像 juggernaut (基于 redis 的 pubsub 服务) 也依赖 node。另外想把 coffeescript 编译成 js 或者想在编辑器里检查 coffeescript 语法错误,也需要安装 node

You need to Sign in before reply, if you don't have an account, please Sign up first.