module exports 共享變數

一個js檔案就是一個module,module之間無法共享變數,需要透過module exports來共享變數。

每一個檔案都有自己的module變數。

1
console.log(module)

其中的exports屬性,就是本身這個檔案,檔案本身就是module,分享了什麼變數給別人使用。

  path: '/Users/cici/Desktop/nodejs/node_proj',
  exports: {},
  filename: '/Users/cici/Desktop/nodejs/node_proj/test6.js',

雖然說屬性名為exports,但實際上,它指向的是module.exports,並非exports,使用時以module.exports為主。

test5.js

1
2
3
4
5
6
7
8
const username = 'Mary'
module.exports.username = username
exports = {
    gender: ""
}
function sayHello() {
    console.log('Hello, I am '+ username)
}

test6.js

1
2
3
// 副檔名可不加.js
const custom = require('./test5')
console.log(custom)

由執行結果來看,指向的永遠為module.exports,並非exports。

$node test6.js
{ username: 'Mary' }

合併module.exports與exports

test5.js

1
2
3
4
5
6
7
8
9
10
const username = 'Mary'
const age = 20
exports = {
    gender: ""
}
module.exports = exports
module.exports.username = "Tom"
function sayHello() {
    console.log('Hello, I am '+ username)
}

test6.js

1
2
const custom = require('./test5')
console.log(custom)

執行

$node test6.js
{ gender: '男', username: 'Tom' }

1305

results matching ""

    No results matching ""