জাভাস্ক্রিপ্ট নোড.জেএস পরবর্তী ()


148

আমি nextnode.js. এ প্রচুর ব্যবহার দেখতে পাচ্ছি

এটা কি, কোথা থেকে আসে? এটার কাজ কি? আমি কি এটি ক্লায়েন্ট পাশ ব্যবহার করতে পারি?

দুঃখিত এটি উদাহরণস্বরূপ এখানে ব্যবহার করা হয়েছে: http://dailyjs.com/2010/12/06/node-tutorial-5/

লোড ব্যবহারকারী ফাংশন সন্ধান করুন।


আমি এটি কোথাও দেখিনি, এবং এটি ডকুমেন্টেশনের কোথাও উল্লেখ করা হয়নি। আপনি যে কোড বেসটি দেখছেন সেখানে কি এটি সংজ্ঞায়িত হওয়ার বিষয়ে নিশ্চিত?
সমীর তালওয়ার

এটি অনেকটা অস্পষ্ট। আপনি প্রসঙ্গে উদাহরণ দিতে পারেন?
রায়নস

উত্তর:


114

এটি নোড.জেএস কন্ট্রোল ফ্লো কোডে একটি পরিবর্তনশীল নামকরণ কনভেনশন হিসাবে উপস্থিত হয়, যেখানে এটি সম্পাদন করার জন্য পরবর্তী ক্রিয়াকলাপের জন্য একটি রেফারেন্স দেওয়া হয়ে গেলে এটি কিক-অফ করার জন্য একটি কলব্যাককে দেওয়া হয়।

উদাহরণস্বরূপ, কোডের নমুনাগুলি এখানে দেখুন:

আপনার পোস্ট করা উদাহরণটি দেখুন:

function loadUser(req, res, next) {
  if (req.session.user_id) {
    User.findById(req.session.user_id, function(user) {
      if (user) {
        req.currentUser = user;
        return next();
      } else {
        res.redirect('/sessions/new');
      }
    });
  } else {
    res.redirect('/sessions/new');
  }
}

app.get('/documents.:format?', loadUser, function(req, res) {
  // ...
});

loadUserফাংশন তৃতীয় যুক্তি, যা নাম আবদ্ধ হয় একটি ফাংশন আশা next। এটি একটি সাধারণ ফাংশন প্যারামিটার। এটি সম্পাদন করার জন্য পরবর্তী ক্রিয়াটির একটি রেফারেন্স ধারণ করে এবং এটি একবার হয়ে loadUserগেলে বলা হয় (যদি না কোনও ব্যবহারকারীকে খুঁজে পাওয়া না যায়)।

nextএই উদাহরণে নাম সম্পর্কে বিশেষ কিছুই নেই ; আমরা এটি কিছু নাম থাকতে পারে।


এটি এক্সপ্রেস.জেজেও বেশ ব্যবহৃত হয় তবে তা হয় না .next()। তিনি nextকোনও বস্তুর পদ্ধতি হিসাবে জিজ্ঞাসা করছেন বলে মনে হয় ।
রায়নস

1
ব্যবহার করা ভালreturn next();
রায়ান ওয়ালটন

2
@ রায়ানওয়াল্টন আমি সম্মত
ওয়েন

আমি এর return callback()পরিবর্তেreturn next()
বিজয়

39

এটি ক্রিয়াকলাপের ক্রমিক সম্পাদন যেমন পরিস্থিতিতে কলব্যাকগুলি পাস করার সময় কনভেনশন ব্যবহৃত হয়, উদাহরণস্বরূপ স্ক্যান ডিরেক্টরি -> ফাইল ডেটা পড়ুন -> ডেটা সহ কিছু করুন। এটি কলব্যাকগুলিকে গভীরভাবে বাসা বাঁধার পছন্দে pre টিম ক্যাসওয়েলের হাও টো নোড ব্লগের নীচের নিবন্ধের প্রথম তিনটি বিভাগ এটি সম্পর্কে একটি ভাল ধারণা দেয়:

http://howtonode.org/control-flow

এছাড়াও সেই পোস্টিংয়ের দ্বিতীয় অংশের সিক্যুয়ালিয়াল অ্যাকশন বিভাগটি দেখুন :

http://howtonode.org/control-flow-part-ii


1
এই লিঙ্কগুলির জন্য অনেক ধন্যবাদ। নোডেজ নিয়ে কাজ শুরু করার সময় এটি অনেকগুলি বিষয় ব্যাখ্যা করে
হাসাম আব্দেলিল্লাহ

লিঙ্কটি এখন কাজ করছে না। এটি ইন্টারনাল সার্ভার ত্রুটি দিচ্ছে
দীপ কাক্কার

1
ইন্টারনেট সংরক্ষণাগার থেকে আপডেট লিঙ্কগুলি
পেরো পি।

লিঙ্কগুলির জন্য আপনাকে ধন্যবাদ, আমি কয়েক মাস আগে নোড ব্যবহার শুরু করেছি তবে আমি নিজেকে এই অনুশীলনগুলি ব্যবহার করে দেখছি তবে সেগুলি পুরোপুরি বুঝতে পারছি না
চার্লস স্মিথ

8

এটি মূলত একটি কলব্যাকের মতো যা এক্সপ্রেস.জেএস কোডের একটি নির্দিষ্ট অংশ কার্যকর ও সম্পন্ন হওয়ার পরে ব্যবহার করে , আপনি কোডটির কিছু অংশ সম্পন্ন হয়েছে এবং আপনি পরবর্তী কাজটি করতে চান তা নিশ্চিত করতে এটি ব্যবহার করতে পারেন, তবে সর্বদা সচেতন থাকুন আপনি কেবল পারেন এক কাজ res.sendআপনার প্রতিটি বিশ্রাম ব্লক ...

একটি সাধারণ next()উদাহরণ হিসাবে আপনি এর মতো কিছু করতে পারেন :

app.get("/", (req, res, next) => {
  console.log("req:", req, "res:", res);
  res.send(["data": "whatever"]);
  next();
},(req, res) =>
  console.log("it's all done!");
);

আপনি যখন আপনার অ্যাপ্লিকেশনটিতে মিডলওয়্যার রাখতে চান তখন এটি খুব কার্যকর ...

মিডলওয়্যার ফাংশনটি লোড করতে মিডলওয়্যার ফাংশন নির্দিষ্ট করে অ্যাপ.ইউজ () কল করুন। উদাহরণস্বরূপ, নীচের কোডটি মূল পাথ (/) এর পথে যাওয়ার আগে মাইলোগার মিডলওয়্যার ফাংশনটি লোড করে।

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

var myLogger = function (req, res, next) {
  console.log('LOGGED');
  next();
}

app.use(myLogger);

app.get('/', function (req, res) {
  res.send('Hello World!');
})

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