首页 > 编程 > JavaScript > 正文

nodejs创建web服务器之hello world程序

2019-11-20 11:46:30
字体:
来源:转载
供稿:网友

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/'); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表