nodejs搭建服务器访问html文件

在这里插入图片描述


let http = require('http');
let fs = require('fs');
let url = require('url');
let path = require('path');

// 处理textType
function getTextType(Extname){                   
    var mes=fs.readFileSync("./server/textType.json");                //通过文件模块同步的读取方法获取json值
    mes=JSON.parse(mes)[Extname];                             //将获取的值转换为Json对象   
    return mes || "text/html";                                //返回转换的值,如果没有查找成功则返回"text/html"
}

//创建服务器
http.createServer((request, response) => {
	//解析请求,包括文件名
	let pathname = url.parse(request.url).pathname;
	let urlstype = getTextType(path.extname(pathname));
	
	if(pathname != '/favicon.ico'){
		if(pathname=='/'){
			pathname = 'index.html';
		}else if(urlstype=="text/html" && pathname!="/index.html"){
			pathname = 'html/'+pathname;
		}
		
		//从文件系统中都去请求的文件内容
		fs.readFile("./" + pathname, (err, data)=> {
			if (err) {
				response.writeHead(404, {
					'Content-Type': 'text/html'
				});
			} else {
				//HTTP 状态码 200 : OK
				response.writeHead(200, {
					'Content-Type': `${urlstype}`
				});
		
				//写会相应内容
				response.write(data.toString());
			}
			//发送响应数据
			response.end();
		});
	}
	
}).listen(3009);

json文件

{
	".323": "text/h323",
	".3gp": "video/3gpp",
	".aab": "application/x-authoware-bin",
	".aam": "application/x-authoware-map",
	".aas": "application/x-authoware-seg",
	".acx": "application/internet-property-stream",
	".ai": "application/postscript",
	".aif": "audio/x-aiff",
	".aifc": "audio/x-aiff",
	".aiff": "audio/x-aiff",
	".als": "audio/X-Alpha5",
	".amc": "application/x-mpeg",
	".ani": "application/octet-stream",
	".apk": "application/vnd.android.package-archive",
	".asc": "text/plain",
	".asd": "application/astound",
	".asf": "video/x-ms-asf",
	".asn": "application/astound",
	".asp": "application/x-asap",
	".asr": "video/x-ms-asf",
	".asx": "video/x-ms-asf",
	".au": "audio/basic",
	".avb": "application/octet-stream",
	".avi": "video/x-msvideo",
	".awb": "audio/amr-wb",
	".axs": "application/olescript",
	".bas": "text/plain",
	".bcpio": "application/x-bcpio",
	".bin ": "application/octet-stream",
	".bld": "application/bld",
	".bld2": "application/bld2",
	".bmp": "image/bmp",
	".bpk": "application/octet-stream",
	".bz2": "application/x-bzip2",
	".c": "text/plain",
	".cal": "image/x-cals",
	".cat": "application/vnd.ms-pkiseccat",
	".ccn": "application/x-cnc",
	".cco": "application/x-cocoa",
	".cdf": "application/x-cdf",
	".cer": "application/x-x509-ca-cert",
	".cgi": "magnus-internal/cgi",
	".chat": "application/x-chat",
	".class": "application/octet-stream",
	".clp": "application/x-msclip",
	".cmx": "image/x-cmx",
	".co": "application/x-cult3d-object",
	".cod": "image/cis-cod",
	".conf": "text/plain",
	".cpio": "application/x-cpio",
	".cpp": "text/plain",
	".cpt": "application/mac-compactpro",
	".crd": "application/x-mscardfile",
	".crl": "application/pkix-crl",
	".crt": "application/x-x509-ca-cert",
	".csh": "application/x-csh",
	".csm": "chemical/x-csml",
	".csml": "chemical/x-csml",
	".css": "text/css",
	".cur": "application/octet-stream",
	".dcm": "x-lml/x-evm",
	".dcr": "application/x-director",
	".dcx": "image/x-dcx",
	".der": "application/x-x509-ca-cert",
	".dhtml": "text/html",
	".dir": "application/x-director",
	".dll": "application/x-msdownload",
	".dmg": "application/octet-stream",
	".dms": "application/octet-stream",
	".doc": "application/msword",
	".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
	".dot": "application/msword",
	".dvi": "application/x-dvi",
	".dwf": "drawing/x-dwf",
	".dwg": "application/x-autocad",
	".dxf": "application/x-autocad",
	".dxr": "application/x-director",
	".ebk": "application/x-expandedbook",
	".emb": "chemical/x-embl-dl-nucleotide",
	".embl": "chemical/x-embl-dl-nucleotide",
	".eps": "application/postscript",
	".epub": "application/epub+zip",
	".eri": "image/x-eri",
	".es": "audio/echospeech",
	".esl": "audio/echospeech",
	".etc": "application/x-earthtime",
	".etx": "text/x-setext",
	".evm": "x-lml/x-evm",
	".evy": "application/envoy",
	".exe": "application/octet-stream",
	".fh4": "image/x-freehand",
	".fh5": "image/x-freehand",
	".fhc": "image/x-freehand",
	".fif": "application/fractals",
	".flr": "x-world/x-vrml",
	".flv": "flv-application/octet-stream",
	".fm": "application/x-maker",
	".fpx": "image/x-fpx",
	".fvi": "video/isivideo",
	".gau": "chemical/x-gaussian-input",
	".gca": "application/x-gca-compressed",
	".gdb": "x-lml/x-gdb",
	".gif": "image/gif",
	".gps": "application/x-gps",
	".gtar": "application/x-gtar",
	".gz": "application/x-gzip",
	".h": "text/plain",
	".hdf": "application/x-hdf",
	".hdm": "text/x-hdml",
	".hdml": "text/x-hdml",
	".hlp": "application/winhlp",
	".hqx": "application/mac-binhex40",
	".hta": "application/hta",
	".htc": "text/x-component",
	".htm": "text/html",
	".html": "text/html",
	".hts": "text/html",
	".htt": "text/webviewhtml",
	".ice": "x-conference/x-cooltalk",
	".ico": "image/x-icon",
	".ief": "image/ief",
	".ifm": "image/gif",
	".ifs": "image/ifs",
	".iii": "application/x-iphone",
	".imy": "audio/melody",
	".ins": "application/x-internet-signup",
	".ips": "application/x-ipscript",
	".ipx": "application/x-ipix",
	".isp": "application/x-internet-signup",
	".it": "audio/x-mod",
	".itz": "audio/x-mod",
	".ivr": "i-world/i-vrml",
	".j2k": "image/j2k",
	".jad": "text/vnd.sun.j2me.app-descriptor",
	".jam": "application/x-jam",
	".jar": "application/java-archive",
	".java": "text/plain",
	".jfif": "image/pipeg",
	".jnlp": "application/x-java-jnlp-file",
	".jpe": "image/jpeg",
	".jpeg": "image/jpeg",
	".jpg": "image/jpeg",
	".jpz": "image/jpeg",
	".js": "application/x-javascript",
	".jwc": "application/jwc",
	".kjx": "application/x-kjx",
	".lak": "x-lml/x-lak",
	".latex": "application/x-latex",
	".lcc": "application/fastman",
	".lcl": "application/x-digitalloca",
	".lcr": "application/x-digitalloca",
	".lgh": "application/lgh",
	".lha": "application/octet-stream",
	".lml": "x-lml/x-lml",
	".lmlpack": "x-lml/x-lmlpack",
	".log": "text/plain",
	".lsf": "video/x-la-asf",
	".lsx": "video/x-la-asf",
	".lzh": "application/octet-stream",
	".m13": "application/x-msmediaview",
	".m14": "application/x-msmediaview",
	".m15": "audio/x-mod",
	".m3u": "audio/x-mpegurl",
	".m3url": "audio/x-mpegurl",
	".m4a": "audio/mp4a-latm",
	".m4b": "audio/mp4a-latm",
	".m4p": "audio/mp4a-latm",
	".m4u": "video/vnd.mpegurl",
	".m4v": "video/x-m4v",
	".ma1": "audio/ma1",
	".ma2": "audio/ma2",
	".ma3": "audio/ma3",
	".ma5": "audio/ma5",
	".man": "application/x-troff-man",
	".map": "magnus-internal/imagemap",
	".mbd": "application/mbedlet",
	".mct": "application/x-mascot",
	".mdb": "application/x-msaccess",
	".mdz": "audio/x-mod",
	".me": "application/x-troff-me",
	".mel": "text/x-vmel",
	".mht": "message/rfc822",
	".mhtml": "message/rfc822",
	".mi": "application/x-mif",
	".mid": "audio/mid",
	".midi": "audio/midi",
	".mif": "application/x-mif",
	".mil": "image/x-cals",
	".mio": "audio/x-mio",
	".mmf": "application/x-skt-lbs",
	".mng": "video/x-mng",
	".mny": "application/x-msmoney",
	".moc": "application/x-mocha",
	".mocha": "application/x-mocha",
	".mod": "audio/x-mod",
	".mof": "application/x-yumekara",
	".mol": "chemical/x-mdl-molfile",
	".mop": "chemical/x-mopac-input",
	".mov": "video/quicktime",
	".movie": "video/x-sgi-movie",
	".mp2": "video/mpeg",
	".mp3": "audio/mpeg",
	".mp4": "video/mp4",
	".mpa": "video/mpeg",
	".mpc": "application/vnd.mpohun.certificate",
	".mpe": "video/mpeg",
	".mpeg": "video/mpeg",
	".mpg": "video/mpeg",
	".mpg4": "video/mp4",
	".mpga": "audio/mpeg",
	".mpn": "application/vnd.mophun.application",
	".mpp": "application/vnd.ms-project",
	".mps": "application/x-mapserver",
	".mpv2": "video/mpeg",
	".mrl": "text/x-mrml",
	".mrm": "application/x-mrm",
	".ms": "application/x-troff-ms",
	".msg": "application/vnd.ms-outlook",
	".mts": "application/metastream",
	".mtx": "application/metastream",
	".mtz": "application/metastream",
	".mvb": "application/x-msmediaview",
	".mzv": "application/metastream",
	".nar": "application/zip",
	".nbmp": "image/nbmp",
	".nc": "application/x-netcdf",
	".ndb": "x-lml/x-ndb",
	".ndwn": "application/ndwn",
	".nif": "application/x-nif",
	".nmz": "application/x-scream",
	".nokia-op-logo": "image/vnd.nok-oplogo-color",
	".npx": "application/x-netfpx",
	".nsnd": "audio/nsnd",
	".nva": "application/x-neva1",
	".nws": "message/rfc822",
	".oda": "application/oda",
	".ogg": "audio/ogg",
	".oom": "application/x-AtlasMate-Plugin",
	".p10": "application/pkcs10",
	".p12": "application/x-pkcs12",
	".p7b": "application/x-pkcs7-certificates",
	".p7c": "application/x-pkcs7-mime",
	".p7m": "application/x-pkcs7-mime",
	".p7r": "application/x-pkcs7-certreqresp",
	".p7s": "application/x-pkcs7-signature",
	".pac": "audio/x-pac",
	".pae": "audio/x-epac",
	".pan": "application/x-pan",
	".pbm": "image/x-portable-bitmap",
	".pcx": "image/x-pcx",
	".pda": "image/x-pda",
	".pdb": "chemical/x-pdb",
	".pdf": "application/pdf",
	".pfr": "application/font-tdpfr",
	".pfx": "application/x-pkcs12",
	".pgm": "image/x-portable-graymap",
	".pict": "image/x-pict",
	".pko": "application/ynd.ms-pkipko",
	".pm": "application/x-perl",
	".pma": "application/x-perfmon",
	".pmc": "application/x-perfmon",
	".pmd": "application/x-pmd",
	".pml": "application/x-perfmon",
	".pmr": "application/x-perfmon",
	".pmw": "application/x-perfmon",
	".png": "image/png",
	".pnm": "image/x-portable-anymap",
	".pnz": "image/png",
	".pot,": "application/vnd.ms-powerpoint",
	".ppm": "image/x-portable-pixmap",
	".pps": "application/vnd.ms-powerpoint",
	".ppt": "application/vnd.ms-powerpoint",
	".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
	".pqf": "application/x-cprplayer",
	".pqi": "application/cprplayer",
	".prc": "application/x-prc",
	".prf": "application/pics-rules",
	".prop": "text/plain",
	".proxy": "application/x-ns-proxy-autoconfig",
	".ps": "application/postscript",
	".ptlk": "application/listenup",
	".pub": "application/x-mspublisher",
	".pvx": "video/x-pv-pvx",
	".qcp": "audio/vnd.qcelp",
	".qt": "video/quicktime",
	".qti": "image/x-quicktime",
	".qtif": "image/x-quicktime",
	".r3t": "text/vnd.rn-realtext3d",
	".ra": "audio/x-pn-realaudio",
	".ram": "audio/x-pn-realaudio",
	".rar": "application/octet-stream",
	".ras": "image/x-cmu-raster",
	".rc": "text/plain",
	".rdf": "application/rdf+xml",
	".rf": "image/vnd.rn-realflash",
	".rgb": "image/x-rgb",
	".rlf": "application/x-richlink",
	".rm": "audio/x-pn-realaudio",
	".rmf": "audio/x-rmf",
	".rmi": "audio/mid",
	".rmm": "audio/x-pn-realaudio",
	".rmvb": "audio/x-pn-realaudio",
	".rnx": "application/vnd.rn-realplayer",
	".roff": "application/x-troff",
	".rp": "image/vnd.rn-realpix",
	".rpm": "audio/x-pn-realaudio-plugin",
	".rt": "text/vnd.rn-realtext",
	".rte": "x-lml/x-gps",
	".rtf": "application/rtf",
	".rtg": "application/metastream",
	".rtx": "text/richtext",
	".rv": "video/vnd.rn-realvideo",
	".rwc": "application/x-rogerwilco",
	".s3m": "audio/x-mod",
	".s3z": "audio/x-mod",
	".sca": "application/x-supercard",
	".scd": "application/x-msschedule",
	".sct": "text/scriptlet",
	".sdf": "application/e-score",
	".sea": "application/x-stuffit",
	".setpay": "application/set-payment-initiation",
	".setreg": "application/set-registration-initiation",
	".sgm": "text/x-sgml",
	".sgml": "text/x-sgml",
	".sh": "application/x-sh",
	".shar": "application/x-shar",
	".shtml": "magnus-internal/parsed-html",
	".shw": "application/presentations",
	".si6": "image/si6",
	".si7": "image/vnd.stiwap.sis",
	".si9": "image/vnd.lgtwap.sis",
	".sis": "application/vnd.symbian.install",
	".sit": "application/x-stuffit",
	".skd": "application/x-Koan",
	".skm": "application/x-Koan",
	".skp": "application/x-Koan",
	".skt": "application/x-Koan",
	".slc": "application/x-salsa",
	".smd": "audio/x-smd",
	".smi": "application/smil",
	".smil": "application/smil",
	".smp": "application/studiom",
	".smz": "audio/x-smd",
	".snd": "audio/basic",
	".spc": "application/x-pkcs7-certificates",
	".spl": "application/futuresplash",
	".spr": "application/x-sprite",
	".sprite": "application/x-sprite",
	".sdp": "application/sdp",
	".spt": "application/x-spt",
	".src": "application/x-wais-source",
	".sst": "application/vnd.ms-pkicertstore",
	".stk": "application/hyperstudio",
	".stl": "application/vnd.ms-pkistl",
	".stm": "text/html",
	".svg": "image/svg+xml",
	".sv4cpio": "application/x-sv4cpio",
	".sv4crc": "application/x-sv4crc",
	".svf": "image/vnd",
	".svg": "image/svg+xml",
	".svh": "image/svh",
	".svr": "x-world/x-svr",
	".swf": "application/x-shockwave-flash",
	".swfl": "application/x-shockwave-flash",
	".t": "application/x-troff",
	".tad": "application/octet-stream",
	".talk": "text/x-speech",
	".tar": "application/x-tar",
	".taz": "application/x-tar",
	".tbp": "application/x-timbuktu",
	".tbt": "application/x-timbuktu",
	".tcl": "application/x-tcl",
	".tex": "application/x-tex",
	".texi": "application/x-texinfo",
	".texinfo": "application/x-texinfo",
	".tgz": "application/x-compressed",
	".thm": "application/vnd.eri.thm",
	".tif": "image/tiff",
	".tiff": "image/tiff",
	".tki": "application/x-tkined",
	".tkined": "application/x-tkined",
	".toc": "application/toc",
	".toy": "image/toy",
	".tr": "application/x-troff",
	".trk": "x-lml/x-gps",
	".trm": "application/x-msterminal",
	".tsi": "audio/tsplayer",
	".tsp": "application/dsptype",
	".tsv": "text/tab-separated-values",
	".ttf": "application/octet-stream",
	".ttz": "application/t-time",
	".txt": "text/plain",
	".uls": "text/iuls",
	".ult": "audio/x-mod",
	".ustar": "application/x-ustar",
	".uu": "application/x-uuencode",
	".uue": "application/x-uuencode",
	".vcd": "application/x-cdlink",
	".vcf": "text/x-vcard",
	".vdo": "video/vdo",
	".vib": "audio/vib",
	".viv": "video/vivo",
	".vivo": "video/vivo",
	".vmd": "application/vocaltec-media-desc",
	".vmf": "application/vocaltec-media-file",
	".vmi": "application/x-dreamcast-vms-info",
	".vms": "application/x-dreamcast-vms",
	".vox": "audio/voxware",
	".vqe": "audio/x-twinvq-plugin",
	".vqf": "audio/x-twinvq",
	".vql": "audio/x-twinvq",
	".vre": "x-world/x-vream",
	".vrml": "x-world/x-vrml",
	".vrt": "x-world/x-vrt",
	".vrw": "x-world/x-vream",
	".vts": "workbook/formulaone",
	".wav": "audio/x-wav",
	".wax": "audio/x-ms-wax",
	".wbmp": "image/vnd.wap.wbmp",
	".wcm": "application/vnd.ms-works",
	".wdb": "application/vnd.ms-works",
	".web": "application/vnd.xara",
	".wi": "image/wavelet",
	".wis": "application/x-InstallShield",
	".wks": "application/vnd.ms-works",
	".wm": "video/x-ms-wm",
	".wma": "audio/x-ms-wma",
	".wmd": "application/x-ms-wmd",
	".wmf": "application/x-msmetafile",
	".wml": "text/vnd.wap.wml",
	".wmlc": "application/vnd.wap.wmlc",
	".wmls": "text/vnd.wap.wmlscript",
	".wmlsc": "application/vnd.wap.wmlscriptc",
	".wmlscript": "text/vnd.wap.wmlscript",
	".wmv": "audio/x-ms-wmv",
	".wmx": "video/x-ms-wmx",
	".wmz": "application/x-ms-wmz",
	".wpng": "image/x-up-wpng",
	".wps": "application/vnd.ms-works",
	".wpt": "x-lml/x-gps",
	".wri": "application/x-mswrite",
	".wrl": "x-world/x-vrml",
	".wrz": "x-world/x-vrml",
	".ws": "text/vnd.wap.wmlscript",
	".wsc": "application/vnd.wap.wmlscriptc",
	".wv": "video/wavelet",
	".wvx": "video/x-ms-wvx",
	".wxl": "application/x-wxl",
	".x-gzip": "application/x-gzip",
	".xaf": "x-world/x-vrml",
	".xar": "application/vnd.xara",
	".xbm": "image/x-xbitmap",
	".xdm": "application/x-xdma",
	".xdma": "application/x-xdma",
	".xdw": "application/vnd.fujixerox.docuworks",
	".xht": "application/xhtml+xml",
	".xhtm": "application/xhtml+xml",
	".xhtml": "application/xhtml+xml",
	".xla": "application/vnd.ms-excel",
	".xlc": "application/vnd.ms-excel",
	".xll": "application/x-excel",
	".xlm": "application/vnd.ms-excel",
	".xls": "application/vnd.ms-excel",
	".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
	".xlt": "application/vnd.ms-excel",
	".xlw": "application/vnd.ms-excel",
	".xm": "audio/x-mod",
	".xml": "text/plain",
	".xml": "application/xml",
	".xmz": "audio/x-mod",
	".xof": "x-world/x-vrml",
	".xpi": "application/x-xpinstall",
	".xpm": "image/x-xpixmap",
	".xsit": "text/xml",
	".xsl": "text/xml",
	".xul": "text/xul",
	".xwd": "image/x-xwindowdump",
	".xyz": "chemical/x-pdb",
	".yz1": "application/x-yz1",
	".z": "application/x-compress",
	".zac": "application/x-zaurus-zac",
	".zip": "application/zip",
	".json": "application/json",
	".woff": "application/font-woff",
	".ttf": "application/vnd.ms-fontobject"
}

发布了142 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_35958891/article/details/105144952