জাভাস্ক্রিপ্ট ফাইলগুলিতে মডিউল.এক্সপোর্টগুলি ঘোষণা করার কনভেনশন


11

আমাদের module.exportsকোন জাভাস্ক্রিপ্ট / নোড.জেএস মডিউল ফাইলগুলি ঘোষনা করা উচিত এমন কোনও সম্মেলন আছে ?

ফাইলের শুরুতে এটি হওয়া উচিত:

module.exports = Foo;

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

বা এটি ফাইলের শেষে হওয়া উচিত:

function Foo() {
    this.bar = 'bar';
}

Foo.prototype.getBar = function() {
    return this.bar;
}

module.exports = Foo;

আমি জানি যে কোনও প্রযুক্তিগত পার্থক্য নেই। ঘোষণা উত্তোলনের কারণে প্রথম উদাহরণটি পুরোপুরি বৈধ ।

তাই আমি ভাবছিলাম যে এখানে কোনও ধরণের সেরা অনুশীলন রয়েছে কিনা।


এটিকে শেষে রেখে দেওয়ার একটি সুবিধা হ'ল আপনি ফাংশন অবজেক্ট ( var Foo = function()...) ব্যবহার করতে পারেন এবং এটির ঘোষণার আরেকটি উপায় হ'ল সরাসরি ( module.exports.Foo = function()...)।
মার্সেলো

আমি ঠিক করতে পারি var Foo = function Foo()...এবং এটি পাশাপাশি কাজ করবে।
হেনরিক

এটিকে শীর্ষে রাখার সুবিধা: আপনি নিজের মডিউলটির এপিআই এক নজরে দেখতে পারেন (নীচে স্ক্রোল না করে)।
অ্যাডাম জারনার

উত্তর:


4

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

সর্বাধিক গুরুত্বপূর্ণ, সর্বদা হিসাবে, সামঞ্জস্যপূর্ণ হতে হবে। এবং আপনার দলে অবিচ্ছিন্ন থাকুন।

সম্পাদনা: একই ধারণাটিতে, আমি requireশুরুতে সমস্ত বিবৃতি পেতে চাই । আমার নোড.জেএস ফাইলগুলি সর্বদা এরকম দেখায়:

"use strict";

const fs = require("fs");
const MyClass = require("./MyClass");


class MyOtherClass extends MyClass {}

module.exports = MyOtherClass;

অভিনব কিছুই নয়, আপনি যেভাবে এটি আশা করবেন। প্রতি ফাইল প্রতি ক্লাস, প্রতি ক্লাসে একটি ফাইল। যে শ্রেণীর উপরের / লোয়ারকেসিং রয়েছে তার সাথে যুক্ত ফাইলগুলির নামের ফাইলগুলি। কিছু উদাহরণের জন্য এই নোড মডিউলটি দেখুন: ইয়াক (অস্বীকৃতি: আমি লেখক, এবং এটি নির্লজ্জ বিজ্ঞাপন)

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