if you just export an object, you gain access to exactly that object
wherever you require it (singleton)
if you export a function which returns an object, you gain access to a copy
of that object wherever you require and execute it (factory?)

2015-01-10 11:04 GMT+01:00 Prabhash Rathore <[email protected]>:

> Thanks Aria/Rick for your replies!
>
> I understand bean1, bean2 and bean3 are similar and they do the same
> thing. What I was looking for is a standard way of creating data object but
> it seems like it's more of a free-style and we can use any of the style to
> create data objects.
>
> Based on your replies, I think this is the best way to represent a data
> object as it's just data and object can represent this data:
>
> module.exports = {
>     name : '';
>     department : '';}
>
> However I have noticed people using function() to create data objects and
> then they just return an object inside the function (see below example)? Is
> there any specific use case or reason on using function instead of using
> just object literal?
>    module.exports = function() {
>      return {
>        name : 'abc',
>        city : 'sj'
>     }
>   }
>
> On Tuesday, January 6, 2015 at 4:19:32 PM UTC-8, Prabhash Rathore wrote:
>>
>> I recently started programming in JavaScript (Server side) and Node.js. I
>> come from Java background where there is a concrete standard on how you
>> define Data Object, which is Java Bean. Do we have any such standards in
>> JavaScript/Node on how we define Data Objects (similar to Java Beans)?
>>
>> I have researched at many places and couldn't find any standards. I have
>> seen following styles but not sure which is better or recommended:
>>
>> //bean1.js
>> module.exports = function() {var obj = {};
>> obj.name = '';
>> obj.department = '';
>> return obj;
>> }
>> //bean2.js
>> module.exports = function() {
>> this.name = '';this.department = '';
>> return this;
>> }
>> //bean3.js
>> module.exports = function(param) {var obj = {};
>> if(param === undefined) {return obj;}
>>
>> obj.name = param.name;
>> obj.department = param.department;
>> return obj;
>> }
>> //bean4.js
>> module.exports = {
>>     name : '';
>>     department : '';}
>>
>>  --
> Job board: http://jobs.nodejs.org/
> New group rules:
> https://gist.github.com/othiym23/9886289#file-moderation-policy-md
> Old group rules:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> ---
> You received this message because you are subscribed to the Google Groups
> "nodejs" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/nodejs/5bb7cb17-c993-4164-bf2b-67bdbea1d647%40googlegroups.com
> <https://groups.google.com/d/msgid/nodejs/5bb7cb17-c993-4164-bf2b-67bdbea1d647%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/CAN5%2BLUsi8f9nmevJ-10BQhgPgyB2-5-4yZnnTOtZtJm1mED4Og%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to