a.jsないのはなぜ以下 `輸出= {Z:関数(){}};`作業
exports = {
z: function() {
console.log('aZ');
}
};
main.js
require('./a').z(); // error
なぜrequire('./a')
空のオブジェクトを返しますか?
a.jsないのはなぜ以下 `輸出= {Z:関数(){}};`作業
exports = {
z: function() {
console.log('aZ');
}
};
main.js
require('./a').z(); // error
なぜrequire('./a')
空のオブジェクトを返しますか?
exports
グローバルを上書きしていて、更新していないためです。あなたとあなたのコードを交換する場合:
exports.z = function() {
console.log('aZ');
};
それはあなたが実際の輸出オブジェクトにz
を追加しているので、動作します。あなたはdocsを見れば
、あなたが表示されます。
参照を入力する短いmodule.exportsはします。あなたが
exports = something
、あなたが実際に変更されていないmodule.exportsはと輸出を交換する場合は今var module = { exports: { /* some export stuff */ } }; var exports = module.exports;
:
は、だから、このような状況を想像することができます。 commonjsと
あなたの代わりにmodule.exports
を使用する必要があります。その後、
module.exports = {
z: function() {
console.log('aZ');
}
};
とを:
require('./a').z();
それは初心者のための紛らわしいですが、少し異なる動作をいくつかの輸出のフォーマットがあります。
あなたが言うように、オブジェクト全体をエクスポートする場合、あなたはそのような全体のエクスポートを置き換えることができます。
module.exports = { z: function(){}};
あなたはまた、単に輸出へのものを添付することができますが
直接
exports.z = function(){}
オブジェクト最後に、ES6互換のバージョンを使用している場合は、
export default { z: function(){}};
は 'module.exports = {}'を使用してdをシミュレートすることができます'es6'のefault(名前なし)のエクスポート? –