Node.js Web服务器开发:从Hello World到基础配置

作者:慢半拍

时间:2026-10-29

浏览:82

本文详解Node.js创建Web服务器的核心步骤,通过Hello World经典示例展示如何引入HTTP模块、创建服务器实例及监听端口。涵盖命令行运行、浏览器访问及Buffer编码处理等基础操作,帮助开发者快速掌握Node.js服务端开发入门技巧。

文章目录

Node.js服务器环境概述

Node.js的核心应用场景主要在于构建服务器端程序。

Node.js的设计初衷之一,是提供一种具备高度可扩展性的服务器运行环境。这与前文提到的Node与V8引擎的区别紧密相关:Node不仅利用V8引擎解析JavaScript代码,还内置了经过高度优化的应用库以提升服务器性能。例如,HTTP模块便是专门针对快速、非阻塞式HTTP服务器需求,使用C语言重新编写的。接下来,我们将通过Node处理HTTP服务器的经典“Hello World”示例进行具体说明。

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

Node.js服务器环境概述

该示例代码首先利用require方法将HTTP库引入程序中。尽管许多编程语言都具备引入外部库的机制,但Node.js采用的是CommonJS模块规范。

当前阶段需要理解的关键点是,HTTP库所具备的功能已被赋值给http对象。

接下来,我们需要构建一个HTTP服务器。与PHP等需要依托Apache等外部服务器运行的语言不同,Node.js自身即可充当Web服务器。

然而,这也意味着我们需要手动创建该服务器实例。代码的下一行调用了HTTP模块提供的工厂方法createServer来生成一个新的HTTP服务器。值得注意的是,新创建的HTTP服务器并未被赋值给任何变量,而是作为一个存活于全局范围内的匿名对象存在。

我们可以通过链式调用来初始化服务器,并指定其监听8124端口。在调用createServer时,我们传递了一个匿名函数作为参数。该函数被绑定到新创建服务器的事件监听器上,用于处理request事件。消息事件机制是JavaScript和Node.js的核心所在。在此示例中,每当有新的访问请求抵达Web服务器,系统便会调用我们指定的函数来处理请求。我们将这类方法称为回调(callback)。其原理是,每当特定事件发生时,系统会触发并执行监听该事件的所有回调函数。

多场景开发示例

示例二:

由于前往另一座城市出差,手头没有电脑,导致dom framework无法按计划发布。借此机会学习一些新技术。此时最迫切的需求是寻找一个超轻量的后端来支撑我的框架,因此我将目光投向了传说中的服务端JavaScript。在后端JS领域,最著名的无疑是Ryan Dahl开发的node.js,另一个则是aptana IDE提供商推出的jaxer。

首先下载node.js,然后将其解压至E盘,并将文件夹重命名为node。接着在开始菜单中输入cmd,使用cd命令切换到nodejs的解压目录:

Node.js服务器环境概述

第一个例子: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/进行访问。

Node.js服务器环境概述

Node.js服务器环境概述

第三个例子: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/'); 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章