এই পৃষ্ঠায় ( http://docs.nodejitsu.com/articles/getting-st সূত্র / কি-is-require ), এতে উল্লেখ করা হয়েছে যে "আপনি যদি কোনও ক্রিয়াকলাপ বা কোনও নতুন অবজেক্টে রফতানি অবজেক্ট সেট করতে চান, আপনাকে অবশ্যই মডিউল.এক্সপোর্ট অবজেক্টটি ব্যবহার করুন।
আমার প্রশ্ন কেন।
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
আমি ফলাফলটি কনসোল.লগ করেছি ( result=require(example.js)
) এবং প্রথমটি [Function]
দ্বিতীয়টি হ'ল {}
।
আপনি দয়া করে এর পিছনে কারণ ব্যাখ্যা করতে পারেন? আমি এখানে পোস্টটি পড়েছি: মডিউল.এক্সপোর্টগুলি বনাম রফতানি নোড.জেএসে । এটি সহায়ক, তবে কেন এটি সেভাবে ডিজাইন করা হয়েছে তার কারণ ব্যাখ্যা করে না। রফতানির রেফারেন্স সরাসরি ফিরিয়ে দেওয়া হলে কি সমস্যা হবে?
exports
, উদাহরণস্বরূপ github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports
, আপনি কখনো ভুল হতে পাবেন, কিন্তু আপনি ব্যবহার করতে পারেন exports
যদি আপনি ডিফল্ট রপ্তানি বস্তু, যে, যদি কেবল আপনি ভালো বৈশিষ্ট্য সংযুক্ত প্রতিস্থাপন করছি না: var foo = require('foo').foo
। এই foo
সম্পত্তিটি এই জাতীয়ভাবে রফতানি করা যায়: exports.foo = ...
এবং অবশ্যই এটির সাথেও module.exports
। এটি একটি ব্যক্তিগত পছন্দ তবে আমি বর্তমানে module.exports
এবং exports
যথাযথভাবে ব্যবহার করছি ।
module.exports
।