首页 > 代码库 > 基于Node.js搭建静态服务器
基于Node.js搭建静态服务器
作者:zhanhailiang 日期:2014-11-23
原理:
- 通过解析请求url来解析到相应文件路径;
- 判断文件是否存在;
- 若存在,则读取文件内容输出;
实现:
var path = require(‘path‘), fs = require(‘fs‘); require(‘http‘).createServer(function(req, res) { // 解析文件路径,默认以当前目录为根目录查找文件 // 这里可以通过配置root值来做为相对根目录查找文件 var file = path.normalize(‘.‘ + req.url); console.log(‘Trying to serve‘, file); function reportError(err) { console.log(err); res.writeHead(500); res.end(‘Internal Server Error‘); } // 判断文件是否存在 path.exists(file, function(exists) { // 文件存在,则读取文件流,输出 if (exists) { fs.stat(file, function(err, stat) { var rs; if (err) { return reportError(err); } if (stat.isDirectory()) { res.writeHead(403); res.end(‘Forbidden‘); } else { rs = fs.createReadStream(file); rs.on(‘error‘, reportError); res.writeHead(200); rs.pipe(res); } }); // 404 } else { res.writeHead(404); res.end(‘Not found‘); } }); }).listen(4000);
完整源码:https://github.com/billfeller/professional-nodejs/tree/master/chapter11
参考:<Professional Node.js> Chapter11 Building HTTP Servers
最后:
以上只是一个实现静态服务器的示例,生产应用仍然首选Nginx。
基于Node.js搭建静态服务器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。