ใช้ NodeJS เพื่อสร้างเซิร์ฟเวอร์ไฟล์แบบคงที่บน Windows แม้ว่าคุณจะไม่มีรากฐานพื้นฐานใด ๆ คุณสามารถเรียนรู้ที่จะสร้างเซิร์ฟเวอร์ไฟล์แบบคงที่ NodeJS บทความนี้แนะนำรายละเอียดและเหมาะสำหรับเพื่อนที่ไม่มีรากฐานพื้นฐานที่จะเรียนรู้
ติดตั้งครั้งแรก nodejs:
•สร้างโฟลเดอร์โหนดใหม่
•ดาวน์โหลด node.exe ไปยังโฟลเดอร์นี้
•ดาวน์โหลด NPM และ UNZIP ไปยังโฟลเดอร์
•ตอนนี้โฟลเดอร์โหนดเป็นเช่นนี้
•เพิ่มไดเรกทอรีนี้ลงในตัวแปรสภาพแวดล้อมเส้นทาง
•ดำเนินการบนบรรทัดคำสั่ง
โหนด -vnpm -v
หากคุณได้รับหมายเลขเวอร์ชันหมายความว่าการติดตั้ง NodeJS เสร็จสมบูรณ์
•ดำเนินการบนบรรทัดคำสั่ง
NPM config set registry https://registry.npm.taobao.org
ในอนาคตโมดูล NodeJS จะถูกดาวน์โหลดจากภาพ NPM ของ Taobao
•หากคุณต้องการเผยแพร่โมดูลของคุณเองเป็น NPM คุณต้องสลับรีจิสทรี NPM ก่อน
npm config set registry https://registry.npmjs.org
ถัดไปสร้างเซิร์ฟเวอร์ไฟล์แบบคงที่
•สร้างเซิร์ฟเวอร์โฟลเดอร์รูทโฟลเดอร์เซิร์ฟเวอร์คือรหัส JS ของเซิร์ฟเวอร์รูทคือไดเรกทอรีรูทไดเรกทอรี
•สร้าง js file index.js mime.js server.js
• index.js
var server = require ('./ server.js'); var rootpath = 'root'; var sv = server.create ({พอร์ต: '9587', โฮสต์: '127.0.0.1', root: rootpath}); • mime.js var types = {"CSS": "text/css", "น้อยลง": "text/css", "gif": "image/gif", "html": "text/html", "ejs": "html" "image/jpeg", "js": "text/javascript", "json": "application/json", "pdf": "แอปพลิเคชัน/pdf", "png": "image/png", "svg": "image/svg+xml", "swf": "Text/Plain", "Wav": "Audio/X-Wav", "WMA": "Audio/X-MS-WMA", "WMV": "Video/X-MS-WMV", "XML": "Text/XML", "เริ่มต้น": 'ข้อความ/ธรรมดา'}• server.js
var http = require ('http'); var path = ต้องการ ('path'); var fs = ต้องการ ('fs'); var url = ต้องการ ("url"); var mime = ต้องการ ('./ mime.js'); ฟังก์ชั่น getPromise http.createserver (); คำขอฟังก์ชัน (คำขอ, การตอบสนอง) {var pathname = decodeuricomponent (url.parse (request.url) .pathName); var realpath = path.resolve (path.join (รูท, pathname)); // เส้นทางที่แท้จริงของการร้องขอ เส้นทางที่มีอยู่ isexists? {fs.stat (realpath, function (err, stat) {// ตัดสินว่าเส้นทางเป็นไฟล์หรือโฟลเดอร์ถ้า (err) {ปฏิเสธ (err);} else {redent);}})}) จากนั้น (stat) {ถ้า stat.isfile (stat.isfile {// พา ธ สอดคล้องกับโฟลเดอร์ var defaultIndExPath = path.resolve (realPath, 'index.html'); return getPromise (ฟังก์ชั่น (แก้ไข, ปฏิเสธ) {fs.exists (defaultIndExpath, ฟังก์ชัน (isExists) {ถ้า (isExists) {// โฟลเดอร์จากนั้นรายการเนื้อหาของโฟลเดอร์จะแสดงการแก้ไข (false);}})}) จากนั้น (ฟังก์ชั่น (isExistSindex) {ถ้า (isExistSindex) {resfile (การตอบสนอง, defaultIndExpath);} else {return getPromise {redent);}})}) จากนั้น (ฟังก์ชั่น (รายการ) {var pmlist = list.map (ฟังก์ชั่น (รายการ) {return (สัญญาใหม่ (ฟังก์ชั่น (ฟังก์ชั่น (แก้ไข, ปฏิเสธ) {fs.stat (path.resolve (realpath, รายการ), ฟังก์ชัน (err, stat) {redentve (`<li> <a href =" $ {item} "> $ {item} </a> </li>`);} ถ้า (stat.isdirectory ()) {redent (`<li> <a href =" $}/"> $ {รายการ {Resolve ('');}})}));}); Promise.all (pmlist). จากนั้น (ฟังก์ชั่น (linklist) {var links = '<ul>'; links += '<li> <a href = "../"> ../ </a> </li> `<! doctype html> <html> <head> <meta charset =" utf-8 "/> <style> a {color: blue; text-decoration: none;}. dir a {color: Orange} </style> </head> <body> $ {links} dirpage);});});}). catch (ฟังก์ชั่น (err) {reswrite (การตอบสนอง, '500', 'default', err.toString ());})}})} else {// ไฟล์หรือโฟลเดอร์ reswrite (การตอบสนอง, '404', 'html', ' '</h3> ไม่พบ');}}). catch (ฟังก์ชั่น (err) {reswrite (การตอบสนอง, '500', 'default', err.toString ());})})})} sv.on ('คำขอ' fs.readfile (realpath, ฟังก์ชั่น (err, data) {ถ้า (err) {reswrite (การตอบสนอง, '500', 'default', err.toString ());} else {var ext = path.extName (realpath) data);}});} ฟังก์ชั่น reswrite (การตอบสนอง, statuscode, mimekey, data) {response.writehead (statuscode, {'เนื้อหาประเภท': mime (mimekey)}); response.end (data);};•กดปุ่ม SHIFT ค้างไว้ในโฟลเดอร์เซิร์ฟเวอร์คลิกขวาที่พื้นที่ว่างในโฟลเดอร์คลิกที่นี่เพื่อเปิดหน้าต่างคำสั่งและดำเนินการคำสั่ง
Node Index.js
ด้านบนเป็นวิธีง่ายๆในการใช้ NodeJS เพื่อสร้างเซิร์ฟเวอร์ไฟล์แบบคงที่บน Windows ที่ตัวแก้ไขแนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!