নোডেজ সংযোগ স্থির খুঁজে পাচ্ছে না


118

দ্রষ্টব্য: আমি এখানে প্রদত্ত অন্যান্য সমাধান চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি

নোডজেস সহ এক নবাগত। আমি AngularJS প্রো অনুসরণ করার চেষ্টা করছি এবং নোডজেস সার্ভার সেট আপ করতে আটকে গেলাম stuck বই অনুসারে, আমি নোডেজ ইনস্টল করেছি এবং তারপরে এনপিএম ইনস্টল কানেক্ট ব্যবহার করে সংযুক্ত প্যাকেজ ইনস্টল করেছি

তারপরে নোডেজ ফোল্ডারের পাশের ফোল্ডারে অ্যাঙ্গুলারগুলি ডাউনলোড করুন। তারপরে সার্ভারের সাথে সংযোগের জন্য সার্ভার.জেএস ফাইলটি লিখেছেন। ফাইলটির বিষয়বস্তু এখানে:

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

আমি যখন এই সার্ভার.জেএস ফাইলটি ব্যবহার করে চালাচ্ছি:

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 ইনস্টল করুন কানেক্ট@2.XX

সর্বশেষতম 2.XX সংস্করণ ইনস্টল করা আপনার বর্তমান বাস্তবায়নকে সঠিকভাবে কাজ করার অনুমতি দেবে।

বিকল্প 2
আপনি সংযোগের 3.x সংস্করণটি ব্যবহার করতে চালিয়ে যেতে পারেন এবং যুক্ত করতে পারেন serve-static:

serve 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/..)
মাইকেল

আমি এটি চেষ্টা করেছিলাম, এখন আমি ব্রাউজারে "পেতে পারি না" / এ ত্রুটি পাচ্ছি
উত্তর বিলাল

@ অ্যানসিবিলাল "লোকালহোস্ট: 5000 / টেস্ট এইচটিএমএল" চেষ্টা করে দেখুন। ধরে নিই আপনি বইটিতে উদাহরণটি অনুসরণ করছেন (ওপিতে রেফারেন্স করা হয়েছে) যে URL টি আপনার জন্য কাজ করা উচিত।
আকভলেজোস

হ্যাঁ আমি বইটি থেকে একটি উদাহরণ চেষ্টা করছিলাম (অ্যাডাম ফ্রিম্যানের প্রো অ্যাঙ্গুলারজেস)। বেশ কিছুটা অনুসন্ধানের পরে আমি সমাধানে এসেছি এবং আমি এটি অন্যের জন্যও আমার ব্লগে পোস্ট করেছি: Anscoding.blogspot.com/2017/11/…
আনস বিলাল

8

ডিল্যান্টগুলির দ্বারা উত্তর সহায়ক। তবে, একই ত্রুটিটি সমাধান করার জন্য আমি যথাযথ পদক্ষেপগুলি অনুসরণ করেছি। কমান্ড উইন্ডো থেকে ডিরেক্টরিটি ডিরেক্টরিতে পরিবর্তন করুন যেখানে আপনি নোডজেএস ইনস্টল করেছেন। 2. ইতিমধ্যে এনপিএম ইনস্টল সংযোগ চালানোর পরে, চালান:

npm install serve-static

৩. নিম্নলিখিত কোড সহ সার্ভার.জেস নামের একটি ফাইল তৈরি করুন:

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

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. কমান্ড উইন্ডোতে থাকা অবস্থায় এবং আপনি যে ডিরেক্টরিটিতে নোডজেএস ইনস্টল করেছেন সেখানে এখনও চালনা করুন:

    নোড সার্ভার.জেএস

  2. URL এ নেভিগেট করুন http: // লোকালহোস্ট: 5000 / test.html .h

এই কাজ করা উচিত. এখানে আমার ডিরেক্টরি কনফিগারেশন: সি: ode নোডজেএসআইস্টললোকেশন \ কৌণিক


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

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

4
তাই আপনাকে স্বাগতম। দয়া করে স্ট্যাকওভারফ্লো . com/help/how-to-answer এ পড়ুন । আপনার উত্তর সত্যই গ্রহণযোগ্য উত্তরের জন্য কোনও অতিরিক্ত অন্তর্দৃষ্টি দেয় না।
জাকস

1

আপনি এই জাতীয় কিছু চেষ্টা করতে চাইতে পারেন

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.