nodejs-构建http服务器
来源:互联网 发布:淘宝产品宝贝标题优化 编辑:程序博客网 时间:2024/05/16 09:31
nodejs-构建http服务器
因为工作需要所以上手了node,对于nodejs不需要服务器去处理请求觉得非常神奇,然后决定自己试一下搭建一个http服务器
入口文件app.js:
var server = require('./server');var router = require('./router');var fs = require('fs');// 保存url处理方法,路由router注册了一个当地址栏Get:/home时处理的函数,传入参数res,req,进行响应router.get('/home' , function(res,req) { console.log('Request handler "home" was called.'); // 读取home.html文件 var content = fs.readFileSync('./views/home.html'); res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(content); res.end();});router.get('/about' , function(req,res) { console.log('Request handler "about" was called.'); // 读取about.html文件 var content = fs.readFileSync('./views/about.html'); res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(content); res.end();});// 启动http serverserver.start(router);
router路由模块,router.js:
var fs = require('fs');// 路由函数// 处理不同url的请求// 并返回相应内容var handler = {};function route(pathname, res, req) { console.log('About to route a request for ' + pathname); // 判断此url是否存在特定处理函数 // 存在则调用handler处理 // 不存在则返回404页面 if (typeof handler[pathname] === 'function') { handler[pathname](res, req); } else { console.log('No request handler found for ' + pathname); // 读取404页面 // 所有页面都存放在views文件夹下 var content = fs.readFileSync('./views/404.html'); res.writeHead(404, { 'Content-Type': 'text/html' }); res.write(content); res.end(); }}//匹配get地址栏请求,注册自定义的处理函数handlefunction get(pathname, handle){ handler[pathname] = handle;}// 导出 route 方法exports.route = route;exports.get = get;
服务器模块,server.js:
//// 创建http server//// 加载所需模块var http = require('http');var url = require('url');var fs = require('fs');// 设置ip和端口// 实际应用中,可以把这些写到配置文件中var host = '127.0.0.1', port = 8081;// 创建http serverfunction start(router) { // 参数 // route 判断url是否存在,存在则调用handle处理,不存在则返回404 // handle 处理不同的url请求 // 处理request请求 function onRequest(req, res) { // 使用url.parse()方法解析url // 它会把url string转化为一个object // 这样我们就可以很方便的获取url中的host、port、pathname等值了 var pathname = url.parse(req.url).pathname; console.log('Request for ' + pathname + ' received.'); // 判断并处理不同url请求 // 后面介绍此方法 console.log('to the router.route'); router.route(pathname, res, req); } // 使用http.createSserver()方法创建http server // 并传入onRequest()方法 // 然后使用listen()方法监听指定地址 http.createServer(onRequest).listen(port, host); console.log('Server has started and listening on ' + host + ':' + port);}// 导出 start 方法exports.start = start;
在views文件夹下,添加页面404.html:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>404 page</title> </head> <body> <p>404 page not found</p> </body></html>
about.html页面:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>About page</title> </head> <body> <p>about page</p> </body></html>
home.html页面:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Home page</title> </head> <body> <p>home page</p> </body></html>
这个简单的node框架,有点像express,所有的模块啊,处理请求啊都是一个一个函数来实现的,就是所谓的函数式编程
0 0
- nodejs-构建http服务器
- nodejs (四) 构建HTTP服务器和客户端
- http服务器(nodejs)
- 创建 nodejs HTTP服务器
- 构建简单http服务器
- C# HTTP服务器构建
- NodeJS与多核HTTP服务器
- NodeJS与多核HTTP服务器
- 使用nodejs创建http服务器
- java HttpServer构建http服务器
- java HttpServer构建http服务器
- linux下构建http服务器
- java HttpServer构建http服务器
- 使用netty构建http服务器
- java HttpServer构建http服务器
- nodejs - 简单的http服务器示例
- NodeJs创建基本的HTTP服务器
- 如何使用nodeJS搭建http服务器
- 循环结构代码
- 关于vs编译器Lnk2005错误的随感
- C++中一个比较好的设计思想
- 程序中的固定结构
- 设计随想
- nodejs-构建http服务器
- linux索引inode详解
- 同一个问题,程序设计的结果为什么会截然不同
- 程序设计逻辑
- Flex 4 api学习有感
- 如何构建网络ghost学习办公环境
- 一个从非软件专业调到软件开发中的思路转变过程
- 项目中调试的看法
- html新认识