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


1103

मैं एक बहुत ही सरल HTTP सर्वर चलाना चाहता हूं। प्रत्येक GET अनुरोध को example.comइसे प्राप्त करना चाहिए 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);

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

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


21
Npm मॉड्यूल "कनेक्ट" पर एक नज़र डालें। यह ऐसी बुनियादी कार्यक्षमता प्रदान करता है और कई सेटअपों और अन्य पैकेजों का आधार है।
Morre

5
आपको अपने समाधान को उत्तर के रूप में रखना चाहिए और इसे सही करना चाहिए।
ग्रहम।

8
मैं एरिक बी। सोवेल द्वारा एक सटीक समाधान खोजने में सक्षम था जिसे नोड जेएस से स्थिर फ़ाइलों की सेवा कहा जाता है । पढ़िए पूरी बात अत्यधिक सिफारिशित।
idophir

1
एक मॉड्यूल पर एक नज़र डालें जिसे मैंने कैकेमेयर कहा था। यह आपके सभी संसाधनों को स्वचालित रूप से कैश कर देता है। github.com/topcloud/cachemere
जॉन

1
स्थानीय-वेब-सर्वर देखने के लिए एक अच्छा उदाहरण है
लॉयड

जवाबों:


992

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

$ npm install http-server -g

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

$ cd MyApp

$ http-server

यदि आप एनपीएम 5.2.0 या नए का उपयोग कर रहे हैं, तो आप http-serverइसे स्थापित किए बिना उपयोग कर सकते हैं npx। यह उत्पादन में उपयोग के लिए अनुशंसित नहीं है, लेकिन स्थानीयहोस्ट पर चलने वाले सर्वर को जल्दी से प्राप्त करने का एक शानदार तरीका है।

$ npx http-server

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

$ http-server -o --cors

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

$ http-server --help

NodeJitsu के लिए अन्य अच्छी सुविधाओं और मस्तिष्क-मृत-सरल तैनाती के बहुत सारे।

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

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

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

का एक अच्छा विकल्प http-serverहै light-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\" \"-o\" \"-s\" \"%V\""

सिंपल JSON रीस्ट सर्वर

यदि आपको एक प्रोटोटाइप प्रोजेक्ट के लिए एक साधारण REST सर्वर बनाने की आवश्यकता है तो json-server वह हो सकता है जिसे आप खोज रहे हैं।

ऑटो रिफ्रेशिंग एडिटर्स

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

मैं विजुअल स्टूडियो कोड के साथ लाइव सर्वर का उपयोग करता हूं ।

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

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

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

PhoneGap + Sencha टच डेवलपर्स

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

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

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


9
npm install live-server -g यदि आप एक ही बात चाहते हैं, लेकिन ऑटो-रीलोड के साथ जब यह एक फ़ाइल परिवर्तन का पता लगाता है

3
एक छोटा सा "गच्चा" -। http-server डिफॉल्ट्स को साइट पर सेवा करने के लिए 0.0.0.0 पर डिफॉल्ट करता है। इसलिए, आप इसे एक स्थानीय परीक्षण http-server -a localhost
सेवक के

1
हां ... 0.0.0.0 यह आपके सभी आईपी नेटवर्क वाले उपकरणों (वाईफाई, केबल, ब्लूटूथ) के सभी आईपी को बांध देगा जो किसी भी सार्वजनिक नेटवर्क पर एक बुरा विचार है क्योंकि आप संभवतः हैक हो सकते हैं। यह इतना बुरा नहीं है अगर आप सिर्फ दूसरों को दिखाने के लिए या उसी नेटवर्क पर अपने मोबाइल डिवाइस से कनेक्ट करने के लिए सुरक्षित फायर वॉल नेटवर्क के अंदर अपने ऐप को प्रदर्शित करना चाहते थे।
टोनी ओ'हागन

वास्तव में उपयोगी थोड़ा उपकरण। मेरे पास अपने सर्वर पर बहुत सारे नोड एप्लिकेशन चल रहे हैं, इसलिए मैं 8080 के अलावा एक पोर्ट चुनने के लिए "-p" विकल्प जोड़ता हूं। उदाहरण के लिए: nohup http-server -p 60080 & (इसे पृष्ठभूमि में शुरू करता है और आपको इससे डिस्कनेक्ट करने देता है) शेल सत्र।) आपको यह सुनिश्चित करना चाहिए कि पोर्ट दुनिया के लिए खुला है, उदाहरण के लिए: iptables -I INPUT 1 -p tcp --dport 60090 -j ACCEPT (कई लिनक्स सिस्टम पर)
Blisterpeanuts

इसे सेवा के रूप में कैसे चलाया जाए, इसलिए मैं कमांड प्रॉम्प्ट को बंद करके भी इसका उपयोग कर सकता हूं। क्या कोई उपकरण इस तरह प्रदान करता है यदि यह नहीं है।
संदीप रेतीले

983

आप इसके लिए Node.js के साथ Connect और ServeStatic का उपयोग कर सकते हैं :

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

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

    var connect = require('connect');
    var serveStatic = require('serve-static');
    
    connect()
        .use(serveStatic(__dirname))
        .listen(8080, () => console.log('Server running on 8080...'));
    
  3. Node.js के साथ चलाएँ

    $ node server.js

अब आप जा सकते हैं http://localhost:8080/yourfile.html


24
यह विचार शैक्षिक कारणों से मौजूदा पुस्तकालय का उपयोग नहीं करने का था, लेकिन मुझे लगता है कि एक्सप्रेस का उपयोग इसके निचले स्तर के संस्करण, कनेक्ट से बेहतर सलाह है।
इदोफिर

135
एक्सप्रेस का हिस्सा जो स्टैटिक फाइल का काम करता है, वह सिर्फ कनेक्ट है, इसलिए मुझे स्टैटिक फाइल को परोसने के लिए एक्सप्रेस का उपयोग करने का कारण नहीं दिखता। लेकिन हां, एक्सप्रेस भी काम करेगी।
जियान मार्को घेरार्डी

7
बहुत बढ़िया सलाह। ऊपर दिए गए चरणों ने मेरे उद्देश्यों के लिए बहुत अच्छा काम किया। जियान के लिए धन्यवाद, यहां एक्सप्रेस का लिंक दिया गया है जहां यह पता चलता है कि यह कनेक्ट, expressjs.com पर बनाया गया है। यहां बताया गया है कि एक्सप्रेस का उपयोग कैसे किया जाए: expressjs.com/guide.html
जैक स्टोन

10
मेरे लिए काम नहीं कर रहा है, परिणाम प्राप्त नहीं कर सकता / html। क्या मुझे निर्देशिका नाम के साथ __dirname बदलना चाहिए?
टिमो

3
अब, कनेक्ट संस्करण 3 में बदल गया है। इसलिए, एक को miqid के रूप में सेवा-स्थैतिक का उपयोग करना होगा। मैंने कनेक्ट v3 के लिए पूर्ण कोड के साथ एक और उत्तर पोस्ट किया।
tomet

160

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

Node.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);

  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");

अपडेट करें

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

आपके कोड की समस्या यह है कि आप हमेशा "टेक्स्ट / प्लेन" का एक कंटेंट-टाइप लौटा रहे हैं। उपरोक्त कोड किसी भी सामग्री-प्रकार को वापस नहीं करता है, लेकिन यदि आप इसे केवल 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");

3
यह वास्तव में "समस्या" हल नहीं करता है। आप index.html को एक बाइनरी फ़ाइल के रूप में लौटाते हैं और आप css और js को हैंडल नहीं करते हैं।
idophir

4
यह css और js को हैंडल करता है। यह बाइनरी फ़ाइल के रूप में index.html को वापस नहीं करता है। यह जो भी प्रारूप में है उसमें बस डिस्क से डेटा को कॉपी करता है। कृपया अधिक स्पष्टीकरण के लिए अपडेट देखें।
जोनाथन ट्रैन

कोड के साथ एक मुद्दा, यह केस-संवेदी है, कुछ फ़ाइलों के लिए यूनिक्स पर, यह 404 देता है
प्रदीप

2
ध्यान दें कि "path.exists और path.existsSync अब हटाए गए हैं। कृपया fs.exists और fs.existsSync का उपयोग करें।" stackoverflow.com/a/5008295/259
डेविड साइकस

3
ध्यान दें कि fs.exists()अब भी अपदस्थ किया गया है। fs.stat()दौड़ की स्थिति बनाने के बजाय त्रुटि को पकड़ें ।
मैट

100

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

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 (e.g 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)

3
यदि मैं गलत नहीं हूँ तो यह समाधान एन्कोडिंग प्रकार का ध्यान नहीं रखता है इसलिए HTML पृष्ठों और छवियों के लिए अनुरोधों को समान एन्कोडिंग मिलेगा। है ना?
idophir

2
@idophir अक्सर एन्कोडिंग से कोई फर्क नहीं पड़ता है, ब्राउज़र इसका इस्तेमाल किए गए HTML टैग, या अन्य जानकारी के आधार पर करते हैं, या वे वास्तव में अच्छी तरह से अनुमान लगाते हैं। उपर्युक्त किसी व्यक्ति की तरह, कोई भी MIME प्रकार एक गलत से बेहतर नहीं है। आप निश्चित रूप से नोड-माइम जैसी किसी चीज का उपयोग माइम प्रकार की फाइलों का पता लगाने के लिए कर सकते हैं, लेकिन पूरी तरह से वेब अनुपालन http सर्वर इस सवाल के दायरे से बाहर है।
बीटी

1
@ रोस्टर आपको कुछ विशेष की आवश्यकता नहीं है - बस node thisfile.js। यह तब तक चलेगा, जब तक कि नए कनेक्शन के लिए सुनने और नए परिणामों को वापस करने तक, या तो ए। सिग्नल द्वारा बंद कर दिया जाता है, या बी कुछ पागल त्रुटि किसी तरह कार्यक्रम समाप्ति का कारण बनती है।
बीटी

1
@ रोस्टर कुछ ख्याति का एक और डेमिनेटर github.com/Unitech/pm2
यात्रा मैन

1
मुझे यह उत्तर सबसे अच्छा लगता है, लेकिन दो मुद्दे हैं: 1) यह 200 रिटर्न करता है जब इसे 404 वापस करना चाहिए; फिक्स करने के लिए मैं 'ओपन' कॉलबैक के अंदर राइटहेड (200) को कॉल करता हूं। 2) यदि कोई त्रुटि है, तो सॉकेट खुला छोड़ दिया जाता है; 'त्रुटि' कॉलबैक में I call response.destroy () को ठीक करने के लिए।
पॉल ब्रैनन

70

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

Content-Type: text/plain

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

Content-Type: text/html

जल्दी जवाब देने का शुक्रिया। पेज अब लोड होता है लेकिन बिना CSS के। मैं CSS और JS लोड किए गए मानक HTML पेज कैसे प्राप्त कर सकता हूं?
इडोफिर 21:11

20
आपको उस सर्वर का विस्तार शुरू करना होगा। अभी यह केवल जानता है कि index.html की सेवा कैसे करें - आपको यह सिखाने की जरूरत है कि foo.css और foo.js की सेवा कैसे करें, अपने स्वयं के उपयुक्त MIME प्रकारों के साथ।
clee

1
यदि आप स्थिर फ़ाइलों की सेवा नहीं करना चाहते हैं, तो आप अपनी सीएसएस को एक <style>टैग में छोड़ सकते हैं ।
कीथ

1
नौ साल के बाद, यह वास्तव में सही उत्तर के रूप में स्वीकार किया जाना चाहिए।
रोच84

46

Step1 (कमांड प्रॉम्प्ट के अंदर [मुझे उम्मीद है कि आप अपने FOLDER के लिए cd)): 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


@STEEL, क्या नोड सर्वर को स्वचालित रूप से शुरू करने का कोई तरीका है। मेरा मतलब है कि निर्देशिका पथ पर जाए बिना और फिर नोड्सवर टाइप करें, तभी यह शुरू होगा। मैं IIS की तरह नोड सर्वर शुरू करना चाहता हूं। क्या आप मुझे बता सकते हैं
विनोथ

@ हाँ, कई तरीके हैं। अपने सटीक उद्देश्य या लक्ष्य को
STEEL

@steel मैं कमांड प्रॉम्प्ट में नोड सर्वर दिए बिना स्वचालित रूप से सर्वर शुरू करना चाहता हूं। यह मेरी आवश्यकता है क्या यह संभव है कि आप मुझे कुछ उदाहरण बता सकते हैं
विनोथ

आपको थॉटवर्क्स गो जैसे कुछ टूल का उपयोग करने की आवश्यकता होगी, जो ब्राउज़र से एक क्लिक से टर्मिनल कमांड निष्पादित कर सकते हैं।
STEEL

32

तेज़ तरीका:

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);

19

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

var contentTypesByExtension = {
    'html': "text/html",
    'js':   "text/javascript"
};

...

    var contentType = contentTypesByExtension[fileExtension] || 'text/plain';

हाँ, एरिक बी। सोवेल द्वारा उपयोग किए गए "स्विच" समाधान की तुलना में बहुत अधिक सुरुचिपूर्ण दिखता है (चयनित उत्तर देखें)। धन्यवाद।
idophir

यह उत्तर पूरी तरह से संदर्भ से बाहर है ... यह इस टिप्पणी के भीतर इस लिंक को संदर्भित करता है - stackoverflow.com/questions/6084360/… (हाँ, जो भी हो, इंटरनेट टूटा हुआ है)
मार्स रॉबर्टसन

15

यह मूल रूप से कनेक्ट संस्करण 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 को डिफ़ॉल्ट के रूप में परोसा जाए।


13

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

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


बेहतरीन पसंद। Html, css, js, और इमेज को सेवित करता है। डिबगिंग के लिए बढ़िया। बस इस कोड को अपने server.js के लिए स्थानापन्न करें।
पोलीरिस

2
काश मैं और अधिक upvotes जोड़ सकता! यह भी खूब रही! मैंने डिस्ट फोल्डर var filename = path.join(process.cwd() + '/dist/', uri); से सर्वर में छोटे बदलाव किए । मैंने कोड डाल दिया और यह तब काम करता है जब मैं टाइप करता हूंserver.jsnpm start
जॉन हेनकेल

इसे सेवा के रूप में कैसे चलाया जाए, इसलिए मैं कमांड प्रॉम्प्ट को बंद करके भी इसका उपयोग कर सकता हूं। क्या कोई उपकरण इस तरह प्रदान करता है यदि यह नहीं है।
संदीप रेतीले

13

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

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

npm install -g serve

2 - अपने स्थिर फ़ोल्डर की सेवा करें:

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

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

http://localhost:3000

इसे सेवा के रूप में कैसे चलाया जाए, इसलिए मैं कमांड प्रॉम्प्ट को बंद करके भी इसका उपयोग कर सकता हूं। क्या कोई उपकरण इस तरह प्रदान करता है यदि यह नहीं है।
संदीप रेतीले

यह स्वीकृत उत्तर होना चाहिए। क्योंकि इसका सबसे आसान है, और यह बॉक्स से बाहर काम करता है। इस प्रकार यदि आप केवल पथ के बिना सेवा चलाते हैं, तो यह चालू फ़ोल्डर से सर्वर चलाएगा (आपके पास पहले जहां सीडी-एड है)।
Игор Рајачић

9

मुझे npm पर एक दिलचस्प लाइब्रेरी मिली, जो आपके कुछ काम की हो सकती है। इसे माइम ( 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पथ निर्माण में कार्य की सूचना दें । यह रिक्त स्थान और एन्कोड किए गए वर्णों के साथ फ़ाइल नाम के लिए अनुमति देता है।


8

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

Node.js नमूना एप्लिकेशन नोड चैट में आपकी इच्छित कार्यक्षमता है।
इसमें README.textfile
3. Step वही है जो आप ढूंढ रहे हैं।

चरण 1

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

चरण 2

  • एक index.html बनाएँ और इसे परोसें

चरण 3

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

चरण 4

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

यहाँ server.js है

यहाँ है util.js


5
मुझे परवाह नहीं है। मेरे पास केवल index.html है। मैं सिर्फ html + css + js लोड करना चाहता हूं। धन्यवाद!
इडोफिर 21:11

16
-1 .readFileSyncमें कॉलबैक के लिए। नोड.जेएस के साथ हम गैर अवरुद्ध आईओ का उपयोग करते हैं। कृपया Syncआज्ञाओं की अनुशंसा न करें ।
रेयनोस

हाय @krmby, मदद करने की कोशिश करने के लिए धन्यवाद। मैं वास्तव में इस पर नया हूं। मैंने दोनों सर्वर डाउनलोड किए। js और use.js. जब मैं "नोड server.js" चलाता हूं और किसी ब्राउज़र का उपयोग करके पृष्ठ तक पहुंचने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है: TypeError: Object # <ServerResponse> का कोई तरीका '/' / 'पर /' पास नहीं है। : 67: 8 at /var/www/hppy-site/util.js:56:4 पर [वस्तु वस्तु]। <अनाम> (fs.js: 107: 5) पर [वस्तु वस्तु] .emit (event.jit)। : 61: 17) आफ्टर रीड (fs.js: 970: 12) एट रैपर (fs.js: 245: 17) कोई विचार? BTW - वही हो रहा है जब मैं आपकी परियोजना डाउनलोड करता हूं और इसे चलाता हूं।
इदोफ़िर

1
माफ़ करना। मैं एक नए संस्करण का उपयोग कर रहा था। Res.close () को res.end () के साथ बदल दिया गया
idophir

8

जिस तरह से मैं सबसे पहले नोड स्टैटिक सर्वर को विश्व स्तर पर स्थापित करता हूं

npm install node-static -g

फिर उस निर्देशिका पर जाएँ जिसमें आपकी html फाइलें हों और जिसके साथ स्थैतिक सर्वर शुरू हो static

ब्राउजर में जाकर टाइप करें localhost:8080/"yourHtmlFile"


1
कुछ भी नहीं एक एक लाइनर धड़कता है। धन्यवाद!
AndroidDev

इसे सेवा के रूप में कैसे चलाया जाए, इसलिए मैं कमांड प्रॉम्प्ट को बंद करके भी इसका उपयोग कर सकता हूं। क्या कोई उपकरण इस तरह प्रदान करता है यदि यह नहीं है।
संदीप रेतीले

7
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>

7

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

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

बहुत विश्वास हो गया।

अपडेट करें

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

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

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


6

w3schools से

अनुरोधित किसी भी फ़ाइल की सेवा के लिए एक नोड सर्वर बनाना बहुत आसान है, और आपको इसके लिए किसी भी पैकेज को स्थापित करने की आवश्यकता नहीं है

var http = require('http');
var url = require('url');
var fs = require('fs');

http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    }  
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);

http: // localhost: 8080 / file.html

डिस्क से file.html परोसेंगे



5

मैं एक सरल वेब सर्वर को शुरू करने के लिए नीचे दिए गए कोड का उपयोग करता हूं जो कि डिफ़ॉल्ट 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 सामग्री के साथ सभी js, css और छवि फ़ाइल प्रदान करेगा।

विवरण पर "सहमत नहीं सामग्री प्रकार एक गलत एक से बेहतर है "


5

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

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

इसके लिए:

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

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


1
क्या यह इस मौजूदा उत्तर के समान नहीं है ?
पैंग

4
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'

6
Content-Typeहोना चाहिए text/html, के रूप में यह इस तरह से परिभाषित किया गया है: Content-Type := type "/" subtype *[";" parameter]
t.niese

1
यह उस फ़ोल्डर में मेरी सभी फ़ाइलों को html प्रकार में बदलने की कोशिश करता है, भले ही वह js हो ...
ahnbizcad

शानदार काम करता है ....
स्मैक चेरी

4

थोड़ा और अधिक वर्बोज़ एक्सप्रेस 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 !")

4

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

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

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डिर का उपयोग रूट से फाइल्स को सर्व करने के लिए करेगा। अतिरिक्त संपत्ति जोड़ने के लिए बस उन्हें उस निर्देशिका के अंदर रखें।


2
यदि आपके पास पहले से स्टैटिक्स हैं, तो आप बस निम्नलिखित का उपयोग कर सकते हैं:npm install pushstate-server --save; touch server.js; echo "var server = require('pushstate-server');server.start({ port: 3000, directory: './' });" > server.js; node server.js
स्विवल

4

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

npm install lite-server -g

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

lite-server

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


4

एक्सप्रेस फ़ंक्शन SendFile ठीक वही करता है जो आपको चाहिए, और चूंकि आप नोड से वेब सर्वर कार्यक्षमता चाहते हैं, तो एक्सप्रेस प्राकृतिक विकल्प के रूप में आता है और फिर स्थिर फ़ाइलों की सेवा करना जितना आसान हो जाता है:

res.sendFile('/path_to_your/index.html')

यहाँ और अधिक पढ़ें: https://expressjs.com/en/api.html#res.sendFile

नोड के लिए एक्सप्रेस वेब सर्वर के साथ एक छोटा सा उदाहरण:

var express = require('express');
var app = express();
var path = require('path');

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(8080);

इसे चलाएं, और http: // localhost: 8080 पर नेविगेट करें

इस पर विस्तार करने के लिए आप सीएसएस और छवियों की तरह स्थिर फ़ाइलों की सेवा करने के लिए, यहाँ एक और उदाहरण है:

var express = require('express');
var app = express();
var path = require('path');

app.use(express.static(__dirname + '/css'));

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(8080);

इसलिए सीएसएस नामक एक सबफ़ोल्डर बनाएं, इसमें अपनी स्थिर सामग्री डालें, और यह आपके इंडेक्स.कॉम के लिए आसान संदर्भ के लिए उपलब्ध होगा जैसे:

<link type="text/css" rel="stylesheet" href="/css/style.css" />

Href में सापेक्ष पथ पर ध्यान दें!

देखा!


3

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

'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));

2

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

sudo npm install ripple-emulator -g

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

ripple emulate

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


5
इसके साथ एक Nexus 7 todo क्या है?
15

2

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

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://127.0.0.1/image.jpg

यहाँ image.jpgइस फ़ाइल के समान निर्देशिका में होना चाहिए। आशा है कि यह किसी की मदद करता है :)


आपको फ़ाइल नाम से माइम-प्रकार का परमात्मा नहीं करना चाहिए।
mwieczorek

नोट: fs.exists () को हटा दिया गया है, fs.existsSync () प्रत्यक्ष प्रतिस्थापन है।
JWAspin

@mwieczorek इसे कैसे विभाजित किया जाना चाहिए? क्या आपको याद आया कि वह फाइल एक्सटेंशन से अलग हो रहा है?
जेम्स न्यूटन

उपयोग करना चाह सकते हैं: mimeType = mimeTypes [filename.split ("।")। Pop ()] || "एप्लिकेशन / ऑक्टेट-स्ट्रीम"
जेम्स न्यूटन

1

मैं सुगोईजेएस की भी सिफारिश कर सकता हूं, इसे स्थापित करना बहुत आसान है और तेजी से लिखना शुरू करने का विकल्प देता है और इसमें शानदार विशेषताएं हैं।

शुरू करने के लिए यहां एक नज़र डालें: http://demo.sugoijs.com/ , प्रलेखन: https://wiki.sugoijs.com/

इसमें डेकोरेटर्स, रिक्वेस्ट पॉलिसीज और ऑथराइजेशन पॉलिसी डेकोरेटर्स से निपटने का अनुरोध है।

उदाहरण के लिए:

import {Controller,Response,HttpGet,RequestParam} from "@sugoi/server";

@Controller('/dashboard')
export class CoreController{
    constructor(){}

    @HttpGet("/:role")
    test(@RequestParam('role') role:string,
         @RequestHeader("role") headerRole:string){
        if(role === headerRole )
            return "authorized";
        else{
            throw new Error("unauthorized")
        }
    }
}

1

आज प्रस्तुत पुस्तकालयों के टन के साथ बहुत आसान है। यहां उत्तर कार्यात्मक हैं। यदि आप तेजी से और सरल शुरुआत के लिए एक और संस्करण चाहते हैं

बेशक पहले node.js. स्थापित करें बाद में:

> # module with zero dependencies
> npm install -g @kawix/core@latest 
> # change /path/to/static with your folder or empty for current
> kwcore "https://raw.githubusercontent.com/voxsoftware/kawix-core/master/example/npmrequire/express-static.js" /path/to/static

यहां " https://raw.githubusercontent.com/voxsoftware/kawix-core/master/example/npmrequire/express-static.js " की सामग्री (आपको इसे डाउनलोड करने की आवश्यकता नहीं है, मुझे यह समझने के लिए पोस्ट किया गया है कि यह कैसे काम करता है)

// you can use like this:
// kwcore "https://raw.githubusercontent.com/voxsoftware/kawix-core/master/example/npmrequire/express.js" /path/to/static
// kwcore "https://raw.githubusercontent.com/voxsoftware/kawix-core/master/example/npmrequire/express.js" 

// this will download the npm module and make a local cache
import express from 'npm://express@^4.16.4'
import Path from 'path'

var folder= process.argv[2] || "."
folder= Path.resolve(process.cwd(), folder)
console.log("Using folder as public: " + folder)

var app = express() 
app.use(express.static(folder)) 
app.listen(8181)
console.log("Listening on 8181")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.