Node js module exports variable undefined

i am new to node.js. I was working with module.exports and have certain doubt . I have two files

//test.js
module.exports.lm="abc";
module.exports = "hello";

//index.js
var p = require('./test.js');
var l = require('./test.js').lm;
console.log(p); //hello
console.log(l); //undefined

Can someone explain why this is happening.

module.exports.lm=“abc”;

exports has a property named lm with a value “abc”

Then you set exports to “hello”;
exports is now set to a value of "hello"
No more lm property.

do this instead:

module.exports = {
lm: “abc”,
hello: “hello”
}

then you can do this:

// destructuring assignment
var {lm, hello} = require(’./test.js’);

or

var lm = require(’./test.js’).lm;
var hello = require(’./test.js’).hello;

either way, lm will be ‘abc’ and hello will ‘hello’

or

var test = require(’./test.js’);

and then you can access the properties of test: test.lm and test.hello

1 Like

Read this: module.exports vs. exports. It might be helpful to you to understand the concept.

3 Likes