दिलचस्प पोस्ट
1 9 70 से पहले तारीखों के लिए स्ट्रॉटोम का उपयोग करना स्ट्रिंग से नाम से चर प्राप्त करें आभासी विरासत में शामिल होने पर नीचे-कलाकारों के लिए स्थैतिक_कास्ट का उपयोग क्यों नहीं किया जा सकता? Node.js के साथ सिंक्रोनस डेटाबेस क्वेरीज़ जावा 8: स्ट्रीम बनाम स्ट्रीम के प्रदर्शन नियमित अभिव्यक्ति के साथ हाइफ़न कैसे मिलान करें? प्रविष्टि के क्रम में नक्शे को पुनरावृति क्यों नहीं किया जा सकता? रेगेक्स क्रेडिट कार्ड नंबर परीक्षण सी ++ (सी?) में एक चर पर कई प्रीइन्करेट ऑपरेशन मेटाडेटा पुनर्प्राप्त करने में असमर्थ एंड्रॉइड v2 नक्शे लोड हो रहा है जब पता लगाओ JQuery के `टॉगल (…)` के बजाय 1.8 का उपयोग करने के लिए क्या करें? क्या सी # में एक्सटेंशन विधि के साथ एक कक्षा विधि को ओवरराइड करने के लिए कोई रास्ता है? OnSavedInstanceState उदाहरण पर कैसे उपयोग करें कृपया लैम्ब्डा अभिव्यक्ति का उपयोग करके गुण नाम और प्रकार प्राप्त करें

एक सरल वेब सर्वर के रूप में node.js का उपयोग करना

मैं एक बहुत सरल HTTP सर्वर को चलाने के लिए चाहता हूँ example.com को प्रत्येक GET अनुरोध को index.html को इसके लिए सेवा प्रदान करनी चाहिए, लेकिन एक नियमित HTML पृष्ठ के रूप में (अर्थात, जब आप सामान्य वेब पेज पढ़ते हैं तो उसी अनुभव)।

नीचे दिए गए कोड का उपयोग करके, मैं index.html की सामग्री पढ़ सकता हूं। मैं नियमित रूप से वेब पेज के रूप में index.html कैसे सेवा कर सकता हूं?

 var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(index); }).listen(9615); 

नीचे एक सुझाव जटिल है और मुझे प्रत्येक संसाधन (सीएसएस, जावास्क्रिप्ट, इमेजेस) फ़ाइल के लिए एक लाइन लिखने की आवश्यकता है जिसे मैं इस्तेमाल करना चाहता हूं।

मैं कुछ छवियों, सीएसएस और जावास्क्रिप्ट के साथ एक एकल HTML पृष्ठ कैसे सेवा कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "एक सरल वेब सर्वर के रूप में node.js का उपयोग करना"

आप इसके लिए नोड.जेएस के साथ कनेक्ट और सर्विस्टैट का उपयोग कर सकते हैं:

  1. एनपीएम के साथ कनेक्ट और सेवा-स्थिर स्थापित करें

     $ npm install connect serve-static 
  2. इस सामग्री के साथ server.js फ़ाइल बनाएँ:

     var connect = require('connect'); var serveStatic = require('serve-static'); connect().use(serveStatic(__dirname)).listen(8080, function(){ console.log('Server running on 8080...'); }); 
  3. Node.js के साथ भागो

     $ node server.js 

अब आप http://localhost:8080/yourfile.html

सरल Node.js सर्वर बस है:

 $ npm install http-server -g 

अब आप निम्न आदेशों के माध्यम से एक सर्वर चला सकते हैं:

 $ cd MyApp $ http-server 

या, आप यह कोशिश कर सकते हैं, जो आपके वेब ब्राउजर को खोलता है और सीओआरएस अनुरोधों को सक्षम करता है:

 $ http-server -o --cors 

अधिक विकल्पों के लिए, GitHub पर http-server लिए दस्तावेज देखें , या चलाएं:

 $ http-server --help 

नोडजेत्सू के लिए बहुत सी अच्छी सुविधाएं और मस्तिष्क-मृत-सरल तैनाती

फ़ीचर फॉर्क्स

बेशक आप आसानी से अपनी खुद की कांटा के साथ सुविधाओं को ऊपर उठा सकते हैं। आपको लगता है कि यह पहले से ही इस परियोजना के मौजूदा 400+ फोर्कियों में से एक में किया गया है:

लाइट सर्वर: एक ऑटो रीफ़्रेशिंग वैकल्पिक

http-server का एक अच्छा विकल्प light-server http-server है यह फ़ाइल देखने और ऑटो ताज़ा करने का समर्थन करता है और अन्य विशेषताएँ

 $ npm install -g light-server $ light-server 

Windows Explorer में अपने निर्देशिका संदर्भ मेनू में जोड़ें

  reg.exe add HKCR\Directory\shell\LightServer\command /ve /t REG_EXPAND_SZ /f /d "\"C:\nodejs\light-server.cmd\" \"-s\" \"%V\"" 

ऑटो रीफ़्रेशिंग संपादकों

अधिकांश वेब पेज एडिटर्स और आईडीई टूल्स में अब एक वेब सर्वर शामिल है जो आपकी स्रोत फाइलों को देखेगा और ऑटो बदलकर अपने वेब पेज को रीफ्रेश करेगा।

खुले स्रोत पाठ संपादक ब्रैकेट्स में एक नोडजेएस स्थिर वेब सर्वर भी शामिल है बस कोष्ठक में किसी भी HTML फ़ाइल को खोलें, " लाइव पूर्वावलोकन " दबाएं और यह एक स्थिर सर्वर को प्रारंभ करता है और पृष्ठ पर आपका ब्राउज़र खोलता है। जब भी आप एचटीएमएल फ़ाइल को संपादित करते हैं और सहेजते हैं तो ब्राउज़र ** ऑटो रीफ्रेश होगा। यह विशेष रूप से उपयोगी है जब अनुकूली वेब साइटों का परीक्षण। अपने एचटीएमएल पेज को कई ब्राउज़र्स / विंडो आकार / डिवाइसेस पर खोलें। अपना एचटीएमएल पृष्ठ सहेजें और तुरन्त देखें कि आपकी अनुकूली चीजें सभी ऑटो रिफ्रेश के रूप में काम कर रही हैं या नहीं।

फोनगैप डेवलपर्स

यदि आप एक हाइब्रिड मोबाइल ऐप कोडिंग कर रहे हैं, तो आपको यह जानना चाहिए कि फोनगैप टीम ने अपने नए फोनगैप ऐप के साथ बोर्ड पर इस ऑटो रीफ्रेश अवधारणा को ले लिया है। यह एक जेनेरिक मोबाइल ऐप है जो विकास के दौरान सर्वर से एचटीएमएल 5 फाइलें लोड कर सकता है। यह एक बहुत चालाक चाल है क्योंकि अब आप जेएस / सीएसएस / एचटीएमएल फ़ाइलों को बदलते हुए संकर मोबाइल एप्लिकेशन के लिए अपने विकास चक्र के धीमे संकलन / तैनात कदमों को छोड़ सकते हैं – जो कि आप सबसे अधिक समय कर रहे हैं। वे स्थिर नोडजेएस वेब सर्वर (फोनगैप phonegap serve चलाते phonegap serve ) phonegap serve जो फ़ाइल परिवर्तनों का पता लगाता है।

फोनगैप + सीना टच डेवलपर्स

मैंने अब बड़े पैमाने पर फोनगैप स्टेटिक सर्वर और सीना टच और jQuery मोबाइल डेवलपर्स के लिए फोनगैप डेवलपर ऐप को अनुकूलित किया है। इसे सीना टच लाइव में देखें का समर्थन करता है –qr QR कोड और – लॉकल्टिनल जो आपके स्टैटिक सर्वर को अपने डेस्कटॉप कंप्यूटर से आपके फ़ायरवॉल के बाहर एक यूआरएल पर प्रॉक्सी करता है! उपयोग के टोंस हाइब्रिड मोबाइल देवों के लिए भारी गति

कॉर्डोवा + आयनिक फ्रेमवर्क डेवलपर्स

स्थानीय सर्वर और ऑटो रीफ्रेश फीचर्स ionic उपकरण में पके हुए हैं बस अपने ऐप फ़ोल्डर से ionic serve चलाएं। इससे भी बेहतर … आईओएस और एंड्रॉइड दोनों के पक्ष विचारों से ऑटो रिफ्रेशिंग साइड देखने के ionic serve --lab

इस सार को देखें मैं इसे संदर्भ के लिए पुन: प्रजनन कर रहा हूं, लेकिन सारांश को नियमित रूप से अद्यतन किया गया है।

नोड.जेएस स्थिर फाइल वेब सर्वर किसी भी निर्देशिका में सर्वर को आग लगाने के लिए इसे अपने रास्ते में रखें, एक वैकल्पिक पोर्ट तर्क लेता है।

 var http = require("http"), url = require("url"), path = require("path"), fs = require("fs"), port = process.argv[2] || 8888; http.createServer(function(request, response) { var uri = url.parse(request.url).pathname , filename = path.join(process.cwd(), uri); fs.exists(filename, function(exists) { if(!exists) { response.writeHead(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); return; } if (fs.statSync(filename).isDirectory()) filename += '/index.html'; fs.readFile(filename, "binary", function(err, file) { if(err) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(err + "\n"); response.end(); return; } response.writeHead(200); response.write(file, "binary"); response.end(); }); }); }).listen(parseInt(port, 10)); console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown"); 

अद्यतन करें

सारांश सीएसएस और जेएस फाइल को नियंत्रित करता है मैंने इसे स्वयं प्रयोग किया है "बाइनरी" मोड में पढ़ने / लिखने का उपयोग करना एक समस्या नहीं है। इसका मतलब यह है कि फ़ाइल लाइब्रेरी द्वारा पाठ के रूप में व्याख्या नहीं की जाती है और प्रतिक्रिया में वापस लौटाई गई सामग्री-प्रकार से संबंधित नहीं है।

आपके कोड के साथ समस्या यह है कि आप हमेशा "टेक्स्ट / सादे" की एक सामग्री-प्रकार लौट रहे हैं उपरोक्त कोड किसी भी प्रकार की सामग्री को वापस नहीं करता है, लेकिन यदि आप इसे केवल HTML, CSS, और JS के लिए उपयोग कर रहे हैं तो ब्राउज़र उन लोगों को अनुमान लगा सकता है जो ठीक है। कोई भी सामग्री प्रकार गलत से बेहतर नहीं है

आम तौर पर सामग्री प्रकार आपके वेब सर्वर का एक कॉन्फ़िगरेशन है इसलिए मुझे खेद है अगर यह आपकी समस्या का समाधान नहीं करता है, लेकिन यह मेरे लिए सरल डेवलपमेंट सर्वर के रूप में काम करता है और मुझे लगा कि यह कुछ अन्य लोगों की मदद कर सकता है। यदि आपको प्रतिक्रिया में सही सामग्री प्रकार की आवश्यकता होती है, तो आपको या तो उन्हें स्पष्ट रूप से परिभाषित करने की आवश्यकता होती है जैसे जोइटविड्ल या लायब्रेरी का उपयोग करें जैसे कनेक्टेड जो समझदार चूक है इस बारे में अच्छी बात यह है कि यह सरल और आत्मनिहित (कोई निर्भरता नहीं है)

लेकिन मुझे आपकी समस्या महसूस हो रही है तो यहाँ संयुक्त समाधान है

 var http = require("http"), url = require("url"), path = require("path"), fs = require("fs") port = process.argv[2] || 8888; http.createServer(function(request, response) { var uri = url.parse(request.url).pathname , filename = path.join(process.cwd(), uri); var contentTypesByExtension = { '.html': "text/html", '.css': "text/css", '.js': "text/javascript" }; fs.exists(filename, function(exists) { if(!exists) { response.writeHead(404, {"Content-Type": "text/plain"}); response.write("404 Not Found\n"); response.end(); return; } if (fs.statSync(filename).isDirectory()) filename += '/index.html'; fs.readFile(filename, "binary", function(err, file) { if(err) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(err + "\n"); response.end(); return; } var headers = {}; var contentType = contentTypesByExtension[path.extname(filename)]; if (contentType) headers["Content-Type"] = contentType; response.writeHead(200, headers); response.write(file, "binary"); response.end(); }); }); }).listen(parseInt(port, 10)); console.log("Static file server running at\n => http://localhost:" + port + "/\nCTRL + C to shutdown"); 

आपको एक्सप्रेस की आवश्यकता नहीं है आपको कनेक्ट करने की आवश्यकता नहीं है Node.js नॉटिटेक्शनल HTTP करता है आपको बस इतना करने की ज़रूरत है एक फ़ाइल अनुरोध पर निर्भर करती है:

 var http = require('http') var url = require('url') var fs = require('fs') http.createServer(function (request, response) { var requestUrl = url.parse(request.url) response.writeHead(200) fs.createReadStream(requestUrl.pathname).pipe(response) // do NOT use fs's sync methods ANYWHERE on production (eg readFileSync) }).listen(9615) 

एक अधिक पूर्ण उदाहरण जो अनुरोध को सुनिश्चित करता है, आधार-निर्देशिका के नीचे फ़ाइलों तक नहीं पहुंच सकता, और उचित त्रुटि संभालता है:

 var http = require('http') var url = require('url') var fs = require('fs') var path = require('path') var baseDirectory = __dirname // or whatever base directory you want var port = 9615 http.createServer(function (request, response) { try { var requestUrl = url.parse(request.url) // need to use path.normalize so people can't access directories underneath baseDirectory var fsPath = baseDirectory+path.normalize(requestUrl.pathname) var fileStream = fs.createReadStream(fsPath) fileStream.pipe(response) fileStream.on('open', function() { response.writeHead(200) }) fileStream.on('error',function(e) { response.writeHead(404) // assume the file doesn't exist response.end() }) } catch(e) { response.writeHead(500) response.end() // end the response so browsers don't hang console.log(e.stack) } }).listen(port) console.log("listening on port "+port) 

मुझे लगता है कि जो भाग आप अभी याद कर रहे हैं वह यह है कि आप भेज रहे हैं:

 Content-Type: text/plain 

यदि आप HTML को रेंडर करने के लिए एक वेब ब्राउज़र चाहते हैं, तो आपको इसे इस पर बदला जाना चाहिए:

 Content-Type: text/html 

चरण 1 (कमांड प्रॉम्प्ट के अंदर [मुझे आशा है कि आप अपने फ़ोल्डर को सीडी चाहते हैं]): npm install express

चरण 2: एक फ़ाइल server.js बनाएँ

 var fs = require("fs"); var host = "127.0.0.1"; var port = 1337; var express = require("express"); var app = express(); app.use(express.static(__dirname + "/public")); //use static files in ROOT/public folder app.get("/", function(request, response){ //root dir response.send("Hello!!"); }); app.listen(port, host); 

कृपया ध्यान दें, आपको WATCHFILE (या नोडोमन का उपयोग भी) जोड़ना चाहिए उपरोक्त कोड केवल एक सरल कनेक्शन सर्वर के लिए है

चरण 3: node server.js या nodemon server.js

यदि आप बस सरल HTTP सर्वर होस्ट करना चाहते हैं, तो अब और आसान तरीका है। npm install -g http-server

और हमारी निर्देशिका और प्रकार http-server खोलें

https://www.npmjs.org/package/http-server

तेज़ तरीका:

 var express = require('express'); var app = express(); app.use('/', express.static(__dirname + '/../public')); // ← adjust app.listen(3000, function() { console.log('listening'); }); 

आपका रास्ता:

 var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { console.dir(req.url); // will get you '/' or 'index.html' or 'css/styles.css' ... // • you need to isolate extension // • have a small mimetype lookup array/object // • only there and then reading the file // • delivering it after setting the right content type res.writeHead(200, {'Content-Type': 'text/html'}); res.end('ok'); }).listen(3001); 

स्विच स्टेटमेंट से निपटने के बजाय, मुझे लगता है कि यह एक शब्दकोश से सामग्री प्रकार देखने के लिए निपुण है:

 var contentTypesByExtension = { 'html': "text/html", 'js': "text/javascript" }; ... var contentType = contentTypesByExtension[fileExtension] || 'text/plain'; 

यह कनेक्ट संस्करण 3 के लिए स्वीकार्य उत्तर का एक अद्यतन संस्करण है:

 var connect = require('connect'); var serveStatic = require('serve-static'); var app = connect(); app.use(serveStatic(__dirname, {'index': ['index.html']})); app.listen(3000); 

मैंने एक डिफ़ॉल्ट विकल्प भी जोड़ा है ताकि index.html को एक डिफ़ॉल्ट के रूप में प्रदान किया जा सके।

आपको एक साधारण सर्वर चलाने के लिए किसी भी एनपीएम मॉड्यूल का उपयोग करने की आवश्यकता नहीं है, नोड के लिए " एनपीएम फ्री सर्वर " नामक एक बहुत ही छोटी लाइब्रेरी है:

  • GitHub पर एनपीएम फ्री सर्वर

कोड की 50 लाइनें, आउटपुट यदि आप फ़ाइल या फ़ोल्डर का अनुरोध कर रहे हैं और इसे लाल या हरे रंग का रंग देते हैं यदि यह काम करने में विफल रहता है आकार में 1KB से भी कम (minified)।

संपादित करें:

Node.js नमूना ऐप नोड चैट में आप चाहते हैं कि कार्यक्षमता है।
इसमें README.textfile है
3. कदम है जिसे आप ढूंढ रहे हैं।

चरण 1

  • एक ऐसा सर्वर बनाएँ जो पोर्ट 8002 पर हैलो दुनिया के साथ प्रतिक्रिया करता है

चरण 2

  • एक index.html बनाएं और इसे सेवा दें

चरण 3

  • util.js परिचय
  • तर्क बदल दें ताकि कोई भी स्थिर फ़ाइल सेवा की जा सके
  • कोई फ़ाइल नहीं मिली है तो मामले में 404 दिखाएं

चरण 4

  • jquery-1.4.2.js जोड़ें
  • client.js जोड़ें
  • उपनाम के लिए उपयोगकर्ता को संकेत देने के लिए index.html को बदलें

यहां सर्वर है। Js

यहाँ util.js है

मुझे एनपीएम पर एक दिलचस्प पुस्तकालय मिला जो आपके लिए कुछ उपयोग हो सकता है इसे माइम कहा जाता है ( npm install mime या https://github.com/broofa/node-mime ) और यह एक फ़ाइल का माइम प्रकार निर्धारित कर सकता है यहां एक वेबसर्वर का उदाहरण है जिसे मैंने लिखा था:

 var mime = require("mime"),http = require("http"),fs = require("fs"); http.createServer(function (req, resp) { path = unescape(__dirname + req.url) var code = 200 if(fs.existsSync(path)) { if(fs.lstatSync(path).isDirectory()) { if(fs.existsSync(path+"index.html")) { path += "index.html" } else { code = 403 resp.writeHead(code, {"Content-Type": "text/plain"}); resp.end(code+" "+http.STATUS_CODES[code]+" "+req.url); } } resp.writeHead(code, {"Content-Type": mime.lookup(path)}) fs.readFile(path, function (e, r) { resp.end(r); }) } else { code = 404 resp.writeHead(code, {"Content-Type":"text/plain"}); resp.end(code+" "+http.STATUS_CODES[code]+" "+req.url); } console.log("GET "+code+" "+http.STATUS_CODES[code]+" "+req.url) }).listen(9000,"localhost"); console.log("Listening at http://localhost:9000") 

यह किसी भी नियमित पाठ या छवि फ़ाइल (.html, .css, .js, .pdf, .jpg, .png, .m4a और .mp3) का परीक्षण किया गया एक्सटेंशन हैं, लेकिन यह सिद्धांत इसे सब कुछ के लिए काम करना चाहिए

डेवलपर नोट्स

यहां उस आउटपुट का एक उदाहरण है, जिसे मैं इसके साथ मिला:

 Listening at http://localhost:9000 GET 200 OK /cloud GET 404 Not Found /cloud/favicon.ico GET 200 OK /cloud/icon.png GET 200 OK / GET 200 OK /501.png GET 200 OK /cloud/manifest.json GET 200 OK /config.log GET 200 OK /export1.png GET 200 OK /Chrome3DGlasses.pdf GET 200 OK /cloud GET 200 OK /-1 GET 200 OK /Delta-Vs_for_inner_Solar_System.svg 

मार्ग निर्माण में unescape फ़ंक्शन देखें यह रिक्त स्थान और एन्कोडेड वर्णों के साथ फ़ाइल नामों की अनुमति देना है।

अगर आपके पास पीसी पर नोड स्थापित है तो शायद आपके पास एनपीएम है, अगर आपको नोडजेएस सामान की ज़रूरत नहीं है, तो आप इसके लिए सर्विस पैकेज का उपयोग कर सकते हैं:

1 – अपने पीसी पर पैकेज स्थापित करें:

 npm install -g serve 

2 – अपने स्थिर फ़ोल्डर परोसें:

 serve <path> d:> serve d:\StaticSite 

यह आपको दिखाएगा कि आपके स्थैतिक फ़ोल्डर को किस पोर्ट पर चलाया जा रहा है, बस होस्ट की तरह नेविगेट करें:

 http://localhost:3000 
 var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); // change the to 'text/plain' to 'text/html' it will work as your index page res.end(index); }).listen(9615); 

मुझे लगता है कि आप इसके लिए कहां खोज रहे हैं आपके index.html में, बस इसे सामान्य HTML कोड से भरें – आप उस पर रेंडर करना चाहते हैं, जैसे:

 <html> <h1>Hello world</h1> </html> 

मूल रूप से स्वीकार किए जाते हैं उत्तर की प्रतिलिपि बनाकर, लेकिन जेएस फ़ाइल बनाने से बचें।

 $ node > var connect = require('connect'); connect().use(static('.')).listen(8000); 

यह बहुत convinient मिला

अद्यतन करें

एक्सप्रेस के नवीनतम संस्करण के अनुसार, सेवा-स्थिर एक अलग मिडलवेयर बन गया है सेवा के लिए इसका प्रयोग करें:

 require('http').createServer(require('serve-static')('.')).listen(3000) 

serve-static पहले स्थापित करें।

मैं नीचे एक सरल वेब सर्वर को शुरू करने के लिए कोड का उपयोग करता हूं जो मूल HTML फ़ाइल को प्रस्तुत करता है अगर यूआरएल में कोई फ़ाइल नहीं है

 var http = require('http'), fs = require('fs'), url = require('url'), rootFolder = '/views/', defaultFileName = '/views/5 Tips on improving Programming Logic Geek Files.htm'; http.createServer(function(req, res){ var fileName = url.parse(req.url).pathname; // If no file name in Url, use default file name fileName = (fileName == "/") ? defaultFileName : rootFolder + fileName; fs.readFile(__dirname + decodeURIComponent(fileName), 'binary',function(err, content){ if (content != null && content != '' ){ res.writeHead(200,{'Content-Length':content.length}); res.write(content); } res.end(); }); }).listen(8800); 

यह सभी जेएस, सीएसएस और छवि फ़ाइल को सभी HTML सामग्री के साथ प्रस्तुत करेगी।

कथन पर सहमत " कोई भी सामग्री प्रकार गलत से बेहतर नहीं है "

जिस तरह से मैं करता हूं, वह सबसे पहले नोड स्टैटिक सर्वर से दुनिया भर में स्थापित होता है

 npm install node-static -g 

फिर निर्देशिका में नेविगेट करें जिसमें आपकी एचटीएमएल फाइलें होती हैं और स्थैतिक के साथ static सर्वर प्रारंभ करें

ब्राउज़र और प्रकार localhost:8080/"yourHtmlFile"

मुझे यकीन नहीं है कि यह वही है जो आप चाहते थे, हालांकि, आप बदलने की कोशिश कर सकते हैं:

 {'Content-Type': 'text/plain'} 

इसके लिए:

 {'Content-Type': 'text/html'} 

इसमें ब्राउज़र क्लाइंट को फ़ाइल को सादे टेक्स्ट के बजाय HTML के रूप में प्रदर्शित किया जाएगा।

यहां जटिल उत्तर की पागल राशि। यदि आप नोडजेएस फाइलों / डेटाबेस पर कार्रवाई करने का इरादा नहीं रखते हैं, लेकिन सिर्फ स्थिर html / css / js / images की सेवा देना चाहते हैं क्योंकि आपका सवाल तो पुस्टस्टेट-सर्वर मॉड्यूल या समानता को स्थापित करता है;

यहाँ एक "एक लाइनर" है जो एक मिनी साइट को बनाने और लॉन्च करेगा। बस अपने टर्मिनल में उस संपूर्ण ब्लॉक को उचित निर्देशिका में पेस्ट करें।

 mkdir mysite; \ cd mysite; \ npm install pushstate-server --save; \ mkdir app; \ touch app/index.html; \ echo '<h1>Hello World</h1>' > app/index.html; \ touch server.js; \ echo "var server = require('pushstate-server');server.start({ port: 3000, directory: './app' });" > server.js; \ node server.js 

ब्राउज़र खोलें और http: // localhost: 3000 पर जाएं । किया हुआ।

सर्वर फ़ाइलों से सेवा करने के लिए रूट के रूप में app डीआईआर का उपयोग करेगा। अतिरिक्त संपत्तियां जोड़ने के लिए उन्हें उस निर्देशिका के अंदर रखें।

 var http = require('http'); var fs = require('fs'); var index = fs.readFileSync('index.html'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'html'}); res.end(index); }).listen(9615); //Just Change The CONTENT TYPE to 'html' 

एक थोड़ा और अधिक वर्बोस एक्सप्रेस 4.x संस्करण है लेकिन वह निर्देशिका सूची, संपीड़न, कैशिंग और न्यूनतम लाइनों में लॉगिंग के अनुरोध प्रदान करता है

 var express = require('express'); var compress = require('compression'); var directory = require('serve-index'); var morgan = require('morgan'); //logging for express var app = express(); var oneDay = 86400000; app.use(compress()); app.use(morgan()); app.use(express.static('filesdir', { maxAge: oneDay })); app.use(directory('filesdir', {'icons': true})) app.listen(process.env.PORT || 8000); console.log("Ready To serve files !") 

ऊपर दिए गए अधिकांश उत्तर बहुत अच्छी तरह से बताते हैं कि सामग्री कैसे परोसा जा रही है। मैं जो अतिरिक्त देख रहा था वह निर्देशिका की सूची थी ताकि निर्देशिका की अन्य सामग्री को ब्राउज़ किया जा सके। आगे के पाठकों के लिए यहां मेरा समाधान है:

 'use strict'; var finalhandler = require('finalhandler'); var http = require('http'); var serveIndex = require('serve-index'); var serveStatic = require('serve-static'); var appRootDir = require('app-root-dir').get(); var log = require(appRootDir + '/log/bunyan.js'); var PORT = process.env.port || 8097; // Serve directory indexes for reports folder (with icons) var index = serveIndex('reports/', {'icons': true}); // Serve up files under the folder var serve = serveStatic('reports/'); // Create server var server = http.createServer(function onRequest(req, res){ var done = finalhandler(req, res); serve(req, res, function onNext(err) { if (err) return done(err); index(req, res, done); }) }); server.listen(PORT, log.info('Server listening on: ', PORT)); 

यह सबसे तेज़ समाधानों में से एक है जो मैं जल्दी से वेब पेजों को देखने के लिए उपयोग करता हूं

 sudo npm install ripple-emulator -g 

तब से बस अपनी एचटीएमएल फाइलों की निर्देशिका दर्ज करें और चलाएं

 ripple emulate 

फिर डिवाइस को नेक्सस 7 लैंडस्केप में बदल दें।

एक सरल nodejs server लिए पहले से ही कुछ महान समाधान हैं एक और समाधान है यदि आपको live-reloading आवश्यकता होती है live-reloading जैसा कि आपने अपनी फ़ाइलों में परिवर्तन किया था।

 npm install lite-server -g 

अपनी निर्देशिका नेविगेट करें और करें

 lite-server 

यह आपके लिए लाइव-रीलोडिंग के साथ ब्राउज़र खोल देगा।

सरल संस्करण जो मैंने आया था वह निम्नलिखित है शिक्षा उद्देश्यों के लिए, यह सबसे अच्छा है, क्योंकि यह किसी भी सार पुस्तकालयों का उपयोग नहीं करता है

 var http = require('http'), url = require('url'), path = require('path'), fs = require('fs'); var mimeTypes = { "html": "text/html", "mp3":"audio/mpeg", "mp4":"video/mp4", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "js": "text/javascript", "css": "text/css"}; http.createServer(function(req, res) { var uri = url.parse(req.url).pathname; var filename = path.join(process.cwd(), uri); fs.exists(filename, function(exists) { if(!exists) { console.log("not exists: " + filename); res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('404 Not Found\n'); res.end(); return; } var mimeType = mimeTypes[path.extname(filename).split(".")[1]]; res.writeHead(200, {'Content-Type':mimeType}); var fileStream = fs.createReadStream(filename); fileStream.pipe(res); }); //end path.exists }).listen(1337); 

अब ब्राउज़र पर जाएं और निम्नलिखित खोलें:

 http://img.hiwab.com/server/image.jpg 

यहां image.jpg इस फाइल के रूप में उसी निर्देशिका में होनी चाहिए। उम्मीद है कि यह किसी को मदद करता है 🙂