नोडज कनेक्ट स्थिर नहीं मिल सकता है


118

नोट: मैंने यहां दिए गए अन्य समाधान की कोशिश की है लेकिन यह काम नहीं किया

NodeJs के साथ एक नौसिखिया। मैं AngularJS समर्थक का अनुसरण करने की कोशिश कर रहा हूं और NodeJs सर्वर की स्थापना के साथ फंस गया हूं। पुस्तक के अनुसार, मैंने नोडज इंस्टॉल किया और फिर npm इंस्टॉल कनेक्ट का उपयोग करके कनेक्ट पैकेज स्थापित किया

फिर नोड्यूलर फ़ोल्डर के बगल में फ़ोल्डर में कोणीयज डाउनलोड किया गया। फिर सर्वर से कनेक्ट करने के लिए server.js फ़ाइल लिखी। यहाँ फ़ाइल की सामग्री है:

    var connect = require('connect');
connect.createServer(connect.static("../angularjs")).listen( 5000);

जब मैं इस server.js फ़ाइल का उपयोग कर चलाता हूं:

node server.js

मुझे निम्नलिखित त्रुटि मिली:

 function app(req, res, next){ app.handle(req, res, next); }
 merge(app, proto);
 merge(app, EventEmitter.prototype);
 app.route = '/';
 app.stack = [];
 return app;
 has no method 'static'
   at Object.<anonymous> (C:\web\nodejs\server.js:2:36)
   at Module._compile (module.js:456:26)
   at Object.Module._extensions..js (module.js:474:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:312:12)
   at Function.Module.runMain (module.js:497:10)
   at startup (node.js:119:16)
   at node.js:906:3

कोई विचार लोग? धन्यवाद।

जवाबों:


219

कनेक्ट पैकेज ने अपने कोड बेस के नवीनतम 3.x संस्करण में कुछ बदलाव किए हैं, staticमिडिलवेयर को अपने पैकेज में स्थानांतरित किया है । आप उन पैकेजों की सूची देख सकते हैं जिन्हें यहां स्थानांतरित किया गया है

तो आपके पास दो विकल्प हैं:

विकल्प 1
आप एक पुराने, 2.x संस्करण को स्थापित कर सकते हैं जो कि है:

$ npm स्थापित करें connect@2.XX

नवीनतम 2.XX संस्करण स्थापित करने से आपका वर्तमान कार्यान्वयन ठीक से काम कर सकेगा।

विकल्प 2
आप कनेक्ट के 3.x संस्करण का उपयोग करना जारी रख सकते हैं, और जोड़ भी सकते हैं serve-static:

$ npm सेवा-स्थैतिक स्थापित करें

server.jsनया serve-staticमॉड्यूल शामिल करने के लिए आपको अपनी फ़ाइल को भी अपडेट करना होगा :

var connect = require('connect'),
    serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("../angularjs"));
app.listen(5000);

5
एक ही फ़ोल्डर के मामले में एकल डॉट का उपयोग करके मेरे लिए काम किया है ।/angularjs
coure2011

@ coure2011 pwdनोड शुरू करते समय यह सब आपके पर निर्भर करता है । दो डॉट्स का उपयोग करना सही है जब दौड़ना node server.jsशुरू किया जाए /angularjs(संभवतः आपका pwd है /angularjs/..)
माइकल

मैंने यह कोशिश की, अब मुझे ब्राउज़र में त्रुटि मिल रही है "नहीं मिल सकता है /"
Ans बिलाल

@AnsBilal "लोकलहोस्ट: 5000 / test.html" आज़माएँ। यह मानते हुए कि आप पुस्तक (ओपी में संदर्भित) में उदाहरण का अनुसरण कर रहे हैं कि URL आपके लिए काम करना चाहिए।
अक्वालजोस

हाँ, मैं किताब (एडम फ्रीमैन द्वारा प्रो AngularJs) से एक उदाहरण की कोशिश कर रहा था। थोड़ी खोज के बाद मैं हल करने आया और मैंने अपने ब्लॉग पर दूसरों के लिए भी पोस्ट किया: anscoding.blogspot.com/2017/11/…
Ans बिलाल

8

डायलेन्ट्स द्वारा उत्तर सहायक है। हालाँकि, यहां सटीक कदम हैं जो मैंने उसी त्रुटि को हल करने के लिए पीछा किया। 1. कमांड विंडो से, निर्देशिका को उस निर्देशिका में बदलें जिसमें आपने नोडजेएस स्थापित किया था। 2. पहले से ही npm स्थापित कनेक्ट चलाने के बाद, चलाएँ:

npm install serve-static

3. निम्नलिखित कोड के साथ server.js नामक एक फ़ाइल बनाएँ:

var connect = require('connect'),
serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. अभी भी कमांड विंडो में, और अभी भी उस डायरेक्टरी में जिसमें आपने नोडजेएस इंस्टॉल किया है, चलाएं:

    नोड server.js

  2. URL पर नेविगेट करें http: // localhost: 5000 / test.html

यह काम करना चाहिए। यहां मेरी निर्देशिका कॉन्फ़िगरेशन है: C: \ NodeJSInstallLocation \ angularjs


1
var connect = require('connect'),
    serveStatic = require('serve-static');

connect().use(
    serveStatic("angularjs")
).listen(5000);

4
एसओ में आपका स्वागत है। कृपया stackoverflow.com/help/how-to-answer पर पढ़ें । आपका उत्तर वास्तव में स्वीकृत उत्तर के लिए कोई अतिरिक्त जानकारी नहीं देता है।
जैक्स

1

आप कुछ इस तरह की कोशिश करना चाह सकते हैं

var express = require('express');
var app = express();
app.use(express.static('angularjs'));

0

इसे इस्तेमाल करे...

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

  app.use('',express.static(path.join(__dirname, '/static/')));

कृपया कुछ स्पष्टीकरण जोड़ें कि कोड क्या कर रहा है
elcortegano
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.