Node.js අරඹන බොහෝ අය exports සහ module.exports එකම දෙයක් කියලා ගණන් කරති. එහෙත්, මේ දෙකේ සත්ය වෙනස ඔබේ කේතය require() කළ විට {} වගේ හිස් වස්තුවක් ලැබෙන්න හේතුවයි.
Node.js එකක් ඔබේ ගොනුව ක්රියාත්මක කරන විට, එය ඇතුළත පරිසරයක් සකසයි. එම පරිසරය තුළ exports සහ module.exports යන දෙකම එකම වස්තුවකට (empty object) යොමු වේ. එම නිසා ආරම්භයේ exports === module.exports සත්ය වේ.
ඔබ exports.add = (a,b) => a+b; වගේ එකක් ලියද්දී, module.exports වෙත ගුණාංගයක් එකතු කරනවා. ඒ නිසා require() කරද්දී add ක්රියාකාරිත්වය ලැබේ.
එහෙත්, exports = function(){ console.log('Hello'); }; වගේ ලියනවානම්, ඔබ කෙලවරේ exports නාමකය පමණක් වෙනස් කරයි. module.exports තවමත් මුල් හිස් වස්තුවට යොමු වෙලා ඉන්න බැවින් require() හි හිස් වස්තුවක් ලැබේ.
මතක තබා ගන්න:
- බහු අගයන් (functions, constants) යොදන්න
exports.add = add;වගේ භාවිතා කරන්න. - එකම function, class, object එකක් පමණක් යොදන්න
module.exports = MyClass;භාවිතා කරන්න. exports = MyClass;වගේ පුරුදු වැරදි කිසිදාම නොකරන්න.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණ අධ්යාපනය ඉදිරියට යාමට, Node.js වැනි ජනප්රිය බ්යැක්එන්ඩ් පද්ධති හඳුනා ගැනීම අත්යවශ්යයි. exports සහ module.exports අතර වෙනස හොඳින් අවබෝධ කරගැනීම, සිසුන්ට සහ නවක පරිශීලකයින්ට වැරදි දෝෂයන් නිසා වැඩ කාලය අහිමි වීම වැළැක්වීමට උපකාරී වේ.
දෙවන පාර්ශවයේ, ස්ථානීය සමාගම් Node.js භාවිතා කරමින් API, microservices නිර්මාණය කරන විට, කේතය නිවැරදිව එක්ස්පෝර්ට් නොකිරීම නිසා නිෂ්පාදන පරිසරයේ අධික බග්ස් සහ අඩු විශ්වාසනීයතාවයක් ඇති වේ. මේ තොරතුරු දැනගැනීම, දෝෂ හඳුනා ගැනීමේ වේගය වැඩි කර, ව්යාපාරික වියදම් අඩු කරයි.
අවසන් වශයෙන්, ශ්රී ලංකාවේ තාක්ෂණ ආරම්භකයන්ට module.exports භාවිතා කරමින් එකම වස්තුවක් නිර්යාත කිරීම හොඳ පුරුදු වේ. මෙයින් කේතයේ පැහැදිළිත්වය වැඩිවීමත්, සමූහ වැඩ පිළිවෙළේ සම්බන්ධතාවය දෘඪ කරයි.
එබැවින්, ඔබ Node.js සමඟ වැඩ කරනවානම්, exports එකේ ගුණාංග එකතු කිරීම හෝ module.exports එකට පූර්ණ වස්තුවක් පවරා ගැනීම අතර වෙනස පැහැදිලි කර ගන්න. මෙය ඔබේ කේතය නිවැරදිව require() කර ගැනීමට මූලික තත්ත්වයක් වේ.