用express框架自己设计web服务器
使用nodejs的express框架搭建一台web服务器
首先要安装express框架 命令行输入
等待安装完成即可 这里是全局安装express框架 需要设置环境变量NODE_PATH 将express模块路径添加到NODE_PATH中
另外,你需要简单了解路由的概念 比如:baidu.com/file/2333.jpg 其中 “baidu.com”是host “/file”指的就是路由,由服务器处理你需要申请访问的路由 “/file/2333.jpg” 需要就是访问的链接
接下来,直接上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 var express = require ('express' );var bodyParser = require ('body-parser' );var url = require ('url' );var app = express ();var urlencodedParser = bodyParser.urlencoded ({ extended : false })app.get ('*' , function (req, res ) { var reqPath = decodeURI (url.parse (req.url ).pathname ); console .log ('GET请求地址:' + req.ip .match (/\d+\.\d+\.\d+\.\d+/ ) + ";链接:" + reqPath); var filePath; if (reqPath.endsWith ('/' )) { filePath = reqPath.substr (1 ) + 'index.html' ; if (fs.existsSync (filePath)) { res.sendFile (filePath); } else { res.send ("访问错误!!" ); } } else { filePath = __dirname + reqPath; if (fs.existsSync (filePath)) { res.sendFile (filePath); } else { res.send ("访问错误!!" ); } } }) app.post ('*' , urlencodedParser, function (req, res ) { var reqPath = decodeURI (url.parse (req.url ).pathname ); console .log ('POST请求地址:' + req.ip .match (/\d+\.\d+\.\d+\.\d+/ ) + ";链接:" + reqPath); console .log (req.body ); res.send ("成功!!" ); }) var server = app.listen (80 , function ( ) { console .log ("启动服务器" ); console .log (server.address ()); })
当然可以可使用专门的GET,POST路由来处理专门的请求
1 2 3 4 5 6 7 8 9 10 11 app.get ('/get' ,参数省略) app.post ('/post' ,参数省略)
路由也可以是某个文件
1 2 3 4 5 app.get ('/233.jpg' ,参数省略)
如果想让客户端访问服务器中一个文件夹里所有的文件 实现一个简单的文件服务器 可以使用 “use”方法
1 2 3 4 app.use ('/public' , express.static ('DataBase' ));
有关express框架详细教程可参见菜鸟教程