Saya telah melalui beberapa tes dan saya pikir ini dapat menjelaskan masalah ini ...
app.js
:
var ...
, routes = require('./routes')
...;
...
console.log('@routes', routes);
...
versi /routes/index.js
:
exports = function fn(){}; // outputs "@routes {}"
exports.fn = function fn(){}; // outputs "@routes { fn: [Function: fn] }"
module.exports = function fn(){}; // outputs "@routes function fn(){}"
module.exports.fn = function fn(){}; // outputs "@routes { fn: [Function: fn] }"
Saya bahkan menambahkan file baru:
./routes/index.js
:
module.exports = require('./not-index.js');
module.exports = require('./user.js');
./routes/not-index.js
:
exports = function fn(){};
./routes/user.js
:
exports = function user(){};
Kami mendapatkan output "@routes {}"
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.user = require('./user.js');
./routes/not-index.js
:
exports = function fn(){};
./routes/user.js
:
exports = function user(){};
Kami mendapatkan output "@routes {fn: {}, pengguna: {}}"
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.user = require('./user.js');
./routes/not-index.js
:
exports.fn = function fn(){};
./routes/user.js
:
exports.user = function user(){};
Kami mendapatkan output "@routes {user: [Fungsi: user]}" Jika kita mengubah user.js
ke { ThisLoadedLast: [Function: ThisLoadedLast] }
, kita mendapatkan output "@routes {ThisLoadedLast: [Fungsi: ThisLoadedLast]}".
Tetapi jika kita memodifikasi ./routes/index.js
...
./routes/index.js
:
module.exports.fn = require('./not-index.js');
module.exports.ThisLoadedLast = require('./user.js');
./routes/not-index.js
:
exports.fn = function fn(){};
./routes/user.js
:
exports.ThisLoadedLast = function ThisLoadedLast(){};
... kita mendapatkan "@routes {fn: {fn: [Function: fn]}, ThisLoadedLast: {ThisLoadedLast: [Function: ThisLoadedLast]}}"
Jadi saya sarankan selalu gunakan module.exports
dalam definisi modul Anda.
Saya tidak sepenuhnya mengerti apa yang terjadi secara internal dengan Node, tetapi tolong beri komentar jika Anda dapat lebih memahami hal ini karena saya yakin itu membantu.
- Selamat coding