【Node.js学习小案例】DNS域名解析

Node.js 百度百科:

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的
易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的
数据密集型 的实时应用。

V8引擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

Node是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8
擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8`在非浏览器环境下运行得更好。

Node.js官方介绍:

Node.js® is a platform built on Chrome's JavaScript runtime for easily
building fast, scalable network applications. Node.js uses an
event-driven, non-blocking I/O model that makes it lightweight and
efficient, perfect for data-intensive real-time applications that run
across distributed devices.

我已经断断续续学习了node.js 半年多了,在这期间也穿插着phpAngularJSCSS3等其他的学习。在这些语言中,我最喜欢的就是JavaScriptphp,也很想让自己在这两个语言上有所精进。目前的我对Node.js的学习不是很懂,但一些基础的东西还算理解吧。下面我就把我看的一些资料中的案例搬过来,加入一些其他的功能,让它更像一个完整的应用。

安装Node.js:(下载地址

【Node.js学习小案例】DNS域名解析

Windows下安装NodeJS

windows下的安装很简单,直接去NodeJS官方网站下载对应版本的.msi文件即可(也有.exe文件,但是建议还是下载.msi文件安装,因为.exe文件安装之后里面缺少一些模块和npm,还需自己配置path,否则在windows的命令行里没法执行node命令)

安装之后就可以在命令行里执行:

node -v       // 查看 node.js 版本
npm -v        // 查看 npm 的版本

如果提示不是内部命令,则需要将NodeJS的安装路径添加到环境变量

Linux下安装NodeJS

Linux有很的版本,本人只在CentOS下安装过node.js参考

其他的版本请移步这里(参考

Mac下安装NodeJS

本人是个穷屌丝,没钱买Mac。没有在Mac上安装NodeJS的经验,也就不在这里写什么了。

有需要的童鞋请移步这里(参考),这里有各个系统下的安装方法。

在开始我们的小案例之前我们需要了解一下NodeJS中的模块。

模块分为两类:原生模块文件模块。原生模块即NodeJS API 提供的原生模块,原生模块在启动时已经被加载。文件模块为动态加载模块,加载文件模块的工作主要是由原生模块 module 来实现和完成。

  1. 原生模块的调用

应用NodeJS提供的API require 来加载相应的NodeJS 模块,require 成功后会返回一个NodeJS
模块的对象,该对象拥有该模块的所有属性和方法,如下:

var http = require('http');            // require http 模块
http.createServer(function(req, res) {    res.writeHead(200, {
'Content-Type': 'text/plain' });  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");         // 调用 http 对象的 createServer 和 listen

方法来创建简单的 HTTP 服务器 直接在浏览器地址栏输入http://127.0.0.1:3000 即可看到经典的“Hello World” ~_~

  1. 文件模块的调用方法:

文件模块的调用和原生模块的方法基本一致,但是需要注意的是其两者的加载方法存在一定的区别,原生模块不需要 指定模块路径,而文件模块加载时必须指定文件路径,否则会出错提示"can not find xxx module"。如下:

var obj = require('./exports.js');
var obj = require('/path/.../exports.js');

在调用文件模块时要确保文件存在,路径一定不要错了 ^_^

更多的信息请参考网址 http://nodejs.org/api/

说了这些之后我们来看看我们的小案例,我们先确定我们要做什么:

  • 在浏览器地址栏输入网址,打开一个页面
  • 在页面的输入框里输入网址,点击提交
  • 在页面中输出输入该域名对应的ip地址
    【Node.js学习小案例】DNS域名解析

下一节我们就正式开始我们的小案例。