初识Node.js<一>DNS查询的例子
2016-03-21 21:39
573 查看
今天初学node.js,看的是《Node.js开发实战详解》。配置环境简单,感觉node.js不错,一开始的例子就开始模块化开发,让我觉得特别好,js原来也这么棒。以前都是写些客户端js,没有用js写过服务器,我会坚持学下去。
路由处理模块
DNS解析模块parse_dns.js
首页展示模块main_index.js
首页html文件index.html
这是一个DNS查询的例子,适合用来入门
入口文件var http=require('http'), url=require('url'); var router=require('./router.js'); http.createServer(function(req,res){ var pathname=url.parse(req.url).pathname; req.setEncoding("utf8"); res.writeHead(200,{'Content-Type':'text/html'}); router.router(res,req,pathname); }).listen(3000,"127.0.0.1"); console.log("server is on....3000");
路由处理模块
var ParseDns=require('./parse_dns.js'), MainIndex=require('./main_index.js'); exports.router=function(res,req,pathname){ switch(pathname){ case '/parse': ParseDns.parseDns(res,req); break; default: MainIndex.goIndex(res,req); } }
DNS解析模块parse_dns.js
var querystring=require('querystring'), dns=require('dns'); exports.parseDns=function(res,req){ //问题在这里 var postData="search_dns=www.baidu.com"; //下面这个未执行,若上面的postData不赋值,在下面调用getDns的地方会为空 req.addListener('data',function(postDataChunk){ //**********未执行 console.log("xx"); //**********未执行 postData+=postDataChunk; //**********未执行 }); req.addListener('end',function(){ console.log("yy"); var retDate=getDns(postData,function(domin,address){ res.writeHead(200,{'Content-Type':'text/html'}); res.end("<html><head><meta http-equiv='content-type' content='text/html;charset=utf-8'></head><div style='text-align:center'>Domain:<span style='color:red'>"+domin+"</span>IP:<span style='color:red'>"+address.join(',')+"</span></div></html>"); }); return; }); } function getDns(postData,callback){ var domin=querystring.parse(postData).search_dns; console.log(domin); dns.resolve(domin,function(err,address){ if(!address){ address=["不存在"]; } callback(domin,address); }); }
首页展示模块main_index.js
var fs=require('fs'), url=require('url'); exports.goIndex=function(res,req){ var readPath='C:/nodeJs/'+url.parse('index.html').pathname; var indexPage=fs.readFileSync(readPath); res.end(indexPage); }
首页html文件index.html
<html> <head> <title>DNS query</title> <meta http-equiv='content-type' content='text/html;charset=utf-8'> </head> <body> <h1 style="text-align:center">DNS 查询工具</h1> <div style="text-align:center"> <form action="/parse" method="post"> 查询DNS:<input type="text" name="search_dns"/> <input type="submit" value="查询"/> </form> </div> </body> </html>
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 使用 HTTP 上传 G 级的文件之 Node.js 版本
- 运维入门
- mongo实现消息队列
- Node.js压缩web项目中的js,css和图片
- 利用开源软件打造自己的全功能远程工具
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- async.js 学习记录
- 异步流程控制:7 行代码学会 co 模块
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- 服务器托管六大优势分析
- Erlang实现的一个Web服务器代码实例
- 使用批处理命令设置windows系统的ip地址和dns附图
- 服务器技术全面解析