nodejs 一个简单的web服务器,用于前端自己快速测试部署
(node环境)启动命令:node node-web-server.js
var http=require('http'); var fs = require('fs'); var url = require('url'); //创建服务器 http.createServer(function(request,response) { //后端设置允许跨域 response. setHeader("Access-Control-Allow-Origin","*"); var parseUrl = url.parse(request.url); //解析请求,包括文件名 // console.log(parseUrl); // var parseUrl = url.parse(request.url); var pathname= decodeURI(parseUrl.pathname); //输出请求的文件名 console.log("Request for "+ pathname + " received."); //获取后缀,判断是js还是css文件,如果目录结构不同,此处需要修改 var firstDir = pathname && pathname.split('/')[1]; // var firstDir = pathname && pathname.split('/')[1]; var suffix = pathname && pathname.split('.').slice(-1).toString(); const suffix2Mime = { 'css': 'text/css;charset=utf-8', 'js': 'application/x-javascript;charset=utf-8', 'png': 'image/png', 'xml': 'text/xml', 'xhtml': 'application/xhtml+xml', 'txt': 'text/plain', 'rtf': 'application/rtf', 'pdf': 'application/pdf', 'gif': 'image/gif', 'jpeg': 'image/jpeg', 'au': 'audio/basic', 'midi': 'audio/midi;audio/x-midi', 'ra': 'audio/x-pn-realaudio', 'ram': 'audio/x-pn-realaudio', 'mpg': 'video/mpeg', 'mpeg': 'video/mpeg', 'avi': 'video/x-msvideo', 'gz': 'application/x-gzip', 'tar': 'application/x-tar', // 'tar': 'application/octet-stream', }; // 获取请求文件的对应类型 var ContentType = {'Content-Type': suffix2Mime[suffix] || 'text/html;charset=utf-8'}; // console.log(suffix, ContentType); //从文件系统中去请求的文件内容 fs.readFile(pathname.substr(1),function(err, data) { if(err) { console.log(err); response.writeHead(404, ContentType); } else { //HTTP 状态码 200 : OK response.writeHead(200, ContentType); //写会回相应内容 if (['png'].includes(suffix)) { response.write(data, "binary"); } else { response.write(data.toString()); } } //发送响应数据 response.end(); }); }).listen(8080); console.log('Server running at http://127.0.0.1:8080/');