node.js web应用基本框架
2013-01-10 11:06
711 查看
直入主题,我们的目的就是在node.js的基础上搭建一个简单的web应用,能够根据不同的请求做出不同的反应,为了达到目的我们至少需要这些功能
1、有一个server能接受用户的请求
2、有一个路由router能够根据用户的不同请求做不同的响应
3、有一些handle能对用户的request做分析并把结果返回给用户,同时这些handle能被router调用
达到上面的要求我们需要这么几个文件
1、index.js,作为入口文件
2、server.js,作为服务器server
3、router.js,作为路由器
4、handler.js,作为实际的动作处理
下面一一分析各个文件
index.js
server.js
router.js
handler.js
至此一个简单的web应用就创建完成,我们只要用node index.js启动服务就ok了,然后在端口1337请求服务就能看到对应的网页:http://localhost:1337/
1、有一个server能接受用户的请求
2、有一个路由router能够根据用户的不同请求做不同的响应
3、有一些handle能对用户的request做分析并把结果返回给用户,同时这些handle能被router调用
达到上面的要求我们需要这么几个文件
1、index.js,作为入口文件
2、server.js,作为服务器server
3、router.js,作为路由器
4、handler.js,作为实际的动作处理
下面一一分析各个文件
index.js
var server=require('./server'); var router=require('./router'); var handlers=require('./handler');//引入server,router,handlers模块 var handle={}; handle['/']=handlers.index; handle['/index']=handlers.index; handle['/postform']=handlers.postform; handle['/postaction']=handlers.postaction;//把handlers 和url做对应,并存储在handle对象中 server.start(router.route,handle);//通过依赖注入的方式把router和handle传入server
server.js
var http=require('http'); var url=require('url');
function start(route,handle){ var host='localhost'; var port='1337'; function onRequest(request,response){ var postData=''; route(request,response,postData,handle); } http.createServer(onRequest).listen(port,host);//创建服务并调用route console.log('Server Listen At Http://'+host+':'+port+'/'); } exports.start=start;
router.js
var url=require('url'); function route(request,response,postData,handle){ var path=url.parse(request.url).pathname; if(typeof handle[path]=='function'){ handle[path](request,response);//路由分发并调用handle处理请求 } else{ response.writeHead(404,{'Content-Type':'text/html'}); response.write('your request is not exist!!!'); response.end(); } } exports.route=route;
handler.js
/** * Created with JetBrains WebStorm. * User: lehui * Date: 13-1-9 * Time: 下午12:12 * To change this template use File | Settings | File Templates. */ var url=require('url'); var exec=require('child_process').exec; var querystring=require('querystring'); /**********************站点首页******************************/ function index(request,response){ response.writeHead(200,{'Content-Type':'text/html'}); var body='<html>'+ '<head>'+ '<meta http-equiv="Content-Type" content="text/html; '+ 'charset=UTF-8" />'+ '</head>'+ '<body>'+ '<div><ul>'+ '<li><a href="/">home</a></li>'+ '<li><a href="/postform">post</a></li>'+ '<li><a href="/iotest1">iotest1</a></li>'+ '<li><a href="/iotest2">iotest2</a></li>'+ '<li><a href="/fileuploadform">fileUploadForm</a></li>'+ '</ul></div>'+ '</body>'+ '</html>'; response.write(body); response.end(); } /***************************post数据传输测试**************************************/ function postForm(request,response){ response.writeHead(200,{'Content-Type':'text/html'}); var body = '<html>'+ '<head>'+ '<meta http-equiv="Content-Type" content="text/html; '+ 'charset=UTF-8" />'+ '</head>'+ '<body>'+ '<form action="/postaction" method="post">'+ '<textarea name="text" rows="20" cols="60"></textarea>'+ '<input type="submit" value="Submit text" />'+ '</form>'+ '</body>'+ '</html>'; var path=url.parse(request.url).pathname; response.write(body); response.end(); } function postAction(request,response){ var formidable=require('formidable'); var form=new formidable.IncomingForm();//这里借用了第三方模块formidable来对post数据进行处理,这个模块还能处理文件上传 form.parse(request,function(error,fields,files){ if(!error){ response.writeHead(200,{'Content-Type':'text/html'}); response.write(JSON.stringify(fields)); response.end(); } }); } exports.index=index; exports.postform=postForm; exports.postaction=postAction;
至此一个简单的web应用就创建完成,我们只要用node index.js启动服务就ok了,然后在端口1337请求服务就能看到对应的网页:http://localhost:1337/
相关文章推荐
- 关于node.js的web框架的应用及并发性能测试 推荐
- 优化Node.js Web应用运行速度的10个技巧
- Node.js应用层框架Bearcat概述
- 最流行的Node.js应用开发框架简介
- 使用express搭建第一个Web应用【Node.js初学】
- 用Node.js 写web框架(一)
- three.js自学之旅(1)——用node.js在本地搭建最最=基本web环境
- 支付宝前端团队详解基于Node.js Web框架Chair
- Ubuntu下搭建NodeJS+Express WEB开发框架
- Node.js巧妙实现Web应用代码热更新
- Node.js Web应用代码热更新的另类思路
- 轻量级web框架node.js和bottle
- Node.js轻量级Web框架Express4.x使用指南
- 浅谈Node.js轻量级Web框架Express4.x使用指南
- KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架
- 基于Node.js的web应用实例教程(一)
- Vue+webpack+node.js实现价格监测应用Ponitor
- Node.js 服务器端应用开发框架 -- Hapi.js
- Node.js巧妙实现Web应用代码热更新
- 十大 Node.js 的 Web 框架_快速提升工作效率