Node jsのモジュールからオブジェクトをエクスポートすること、より具体的にはオブジェクトのプロパティにアクセスすることに関する答えを見つけることができない非常に単純な質問を受け取りました。
これが私がエクスポートする私のオブジェクトです:
exports.caravan = {
month: "july"
};
そして、これが私のメインモジュールです:
var caravan = require("./caravan")
console.log(caravan.month);
console.log(caravan.caravan.month);
Caravan.monthでプロパティに直接アクセスできないのに、caravan.caravan.monthと書く必要があるのはなぜですか?
require
を使用すると、モジュールのmodule.exports
オブジェクトにアクセスできることを考慮してください(これはexports
にエイリアスされますが、exports
を使用することには微妙な点がいくつかあります。 module.exports
を使用することをお勧めします)。
あなたのコードを取る:
exports.caravan = { month: "july" };
これはこれに似ています:
module.exports.caravan = { month: "july" };
これはこれに似ています:
module.exports = {
caravan : { month: "july" }
};
同様にrequire
をmodule.exports
の内容に置き換えることで「変換」すると、コードは次のようになります。
var caravan = {
caravan : { month: "july" }
};
これが、caravan.caravan.month
を使用する必要がある理由を説明しています。
余分なレベルの間接参照を削除したい場合は、モジュールでこれを使用できます。
module.exports = {
month: "july"
};
caravan.month
経由で取得したい場合は、次のようにします。
module.exports = {
month: "july"
};
オブジェクトを取得する場合は、
module.exports = {
caravan = {
month: "july"
}
};
そして、次のように取得します。
var caravan = require("./caravan")
以下を確認することもできます。
console.log(caravan.caravan.month);