这里有新鲜出炉的 7 天学会 Node.js,程序狗速度看过来!
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用 · Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
本文给大家分享 nodejs 创建 web 服务器之 hello world 程序,node 真的很好用,不仅用 v8 引擎来解析了 javascript 外,还提供了高度优化的应用库,真的很好,有需要的朋友一起来学习吧
Node.js 最主要的应用是服务器序。
设计 Node.js 的一个主要目的是提供高度可扩展的服务器环境。这是我们在本章开篇介绍过的 Node 和 V8 引擎有所区别的地方。Node 除了用 V8 引擎来解析 JavaScript 外,还提供了高度优化的应用库,用来提高服务器效率。比如说,HTTP 模块是专为快速非阻塞式 HTTP 服务器而用 C 重新编写的。让我们看一下 Node 采用 HTTP 服务器的 "Hello World" 经典例子
- var http=require('http');//引入核心HTTP模块
/* 创建服务器 */
- var server = http.createServer(function(req, res) {
- res.writeHead(200, {
- "Content-type": 'text/html'
- });
- res.end('hello world');
- });
/* 监听 IP 以及端口 */
- server.listen(8124, '127.0.0.1',
- function() {
- console.log('服务器创建成成功:127.0.0.1:8124');
- });
运行代码如下所示
- ZXD@ZXD-PC /K/work/learn/nodejs/cvs01
- $ node app
服务器创建成成功: 127.0.0.1:8124
这个示例代码首先通过 require 方法把 HTTP 库包含到程序中来。有许多语言都有包含其他库这一方法,Node 用的是 CommonJS 模块风格。
当前需要了解的是,HTTP 库所具有的功能已经赋给了 http 对象。
下一步,我们需要一个 HTTP 服务器。PHP 等其他语言需要在类似 Apache 这样的服务器中运行,而 Node 和它们不同,因为 Node 本身就是 Web 服务器。
但这同样意味着我们需要先创建该服务器。下一行代码调用 HTTP 模块的一个工厂模式方法 (createServer)来创建新的 HTTP 服务器。新创建的 HTTP 服务器并没有赋值给任何变量,它只会成为存活在全局范围内的匿名对象。
我们可以通过链式调用来初始化服务器,并告诉它监听在 8124 端口。当调用 createServer 的时候,我们传了一个匿名函数作为参数。此函数绑定在新创建服务器的事件监听器上进行 request 事件处理。消息事件是 JavaScript 和 Node 的核心。在这个例子中,每当一个新的访问请求到达 Web 服务器,它都将调用我们指定的函数方法来处理。我们称这类方法为回调(callback)。因为每当一个事件发生时,我们将回调监听此事件的所有函数。
示例二:
由于跑到另一个城市,手头没电脑,dom framework 不能如期发布,趁此学习一些新东西。这时期最迫切的需要是寻求一个超轻量的后端来架起我的框架,于是触爪伸向传说中的 Server-Side Javascrpt。后端 JS 最出名无疑是 Ryan Dahl 的 node.js,另一个是 aptana IDE 提供商搞出的 jaxer。
首先下载 node.js,然后解压到 E 盘,改名为 node,然后开始菜单输入 cmd,用 cd 命令切换到 nodejs 的解压目录:
第一个例子:hello world。
在 node 目录下建立 hello.js 文件,然后在里面输入:
- var sys = require("sys");
- sys.puts("Hello world");
然后我们在命名台中输入命令 node hello.js,就能看到命名台输出结果 Hello world。
第二个例子:hello world2。
好了,这次我们试从游览器中输出 hello world。在 node 目录下建立 http.js,然后输入:
- var sys = require("sys"),
- http = require("http");
- http.createServer(function(request, response) {
- response.sendHeader(200, {
- "Content-Type": "text/html"
- });
- response.write("Hello World!");
- response.close();
- }).listen(8080);
- sys.puts("Server running at http://localhost:8080/");
然后我们在命名台中输入命令 node http.js,在浏览器输入 http://localhost:8080/
第三个例子:hello world2。
node.js 提供一个 Buffer 类用于转换不同编码的字符串。
目前支持三种类型:'ascii','utf8'与'binary'。详见这里
- var Buffer = require('buffer').Buffer,
- buf = new Buffer(256),
- len = buf.write('\u00bd + \u00bc = \u00be', 0);
- console.log(len + " bytes: " + buf.toString('utf8', 0, len));
第四个例子:hello world3。
- //synopsis.js
- //synopsis 摘要, 梗概,大纲
- var http = require('http');
- http.createServer(function(request, response) {
- response.writeHead(200, {
- 'Content-Type': 'text/plain'
- });
- response.end('Hello World\n');
- }).listen(8124);
- console.log('Server running at http://127.0.0.1:8124/');
来源: http://www.phperz.com/article/17/0425/269812.html