1つは、module.exportsとexportsです。
NodeのモジュールシステムはCommonJS仕様に従います。
次に、CommonJS仕様とは何かという質問が再び出てきます。
jsは以前は混乱していたため、各コードが記述され、モジュールの概念はありませんでした。この仕様は実際にはモジュールの定義です。
CommonJSによって定義されるモジュールは、モジュールID(モジュール)、モジュール定義(エクスポート)、モジュール参照(必須)に分けられます。
まず、エクスポートとモジュールについて説明します。
ノードがファイルを実行すると、エクスポートとモジュールオブジェクトがファイルに生成され
、モジュールにはexports属性があります。それらの関係を下の図に示します。これらはすべて同じ{}メモリ領域を指しています。
exports = module.exports = {
};
通常、module.exportsを使用してエクスポートしてから、requireを使用してインポートすることをお勧めします。
第二に、基本的なユースケース
1、輸出が必要
エクスポートを使用する場合
let myFunc1 = function() {
... };
let myFunc2 = function() {
... };
exports.myFunc1 = myFunc1;
exports.myFunc2 = myFunc2;
const m = require('./mymodule');
m.myFunc1();
つまり、導入されたmオブジェクトには、ファイルのすべてのエクスポートが含まれています。
2、module.exports和require
const a=function a(ctx) {
ctx.body={
"message":"hello from a"
}
}
module.exports=a
const Router=require('koa-router')
const a= require('../api/ayewu')
const router =new Router()
router.get('/a',a)
module.exports=router
このとき、aは上記で定義された関数です。
三、もう一度理解する
モジュールが各.jsファイルに対してnode.js自体によって宣言された変数であることを確認するのは難しくありません。同時に、この変数には2つのパラメーターがあります。1つはインデックスIDで、もう1つはexports、exportsという名前のオブジェクト変数です。ユーザーのエクスポート変数または属性を格納するために使用されます。外部にエクスポートするときに行う必要があるのは、エクスポートする必要のある変数または属性を、モジュール変数の下のエクスポートオブジェクトにキーとキーと値のペアの形式で追加することです。次のように1つずつエクスポートする場合:
function hello() {
console.log('Hello, world!');
}
function greet(name) {
console.log('Hello, ' + name + '!');
}
module.exports.hello = hello;
module.exports.greet = greet;
require importの後に、testという名前が付けられます。test.helloは関数helloであり、test.greetは関数greetです。
したがって、main.jsで導入して使用することができます。
Moduleは、各.jsファイルに対してnode.js自体によって宣言された変数です。その中にパラメーターexportsがあります。このオブジェクトは、ファイルによってエクスポートされたすべてのコンテンツを格納します。
だから、あなたはこのように書くことができます、それはより便利でより速いです
function hello() {
console.log('Hello, world!');
}
function greet(name) {
console.log('Hello, ' + name + '!');
}
let varible="这是一个变量"
module.exports={
hello,
greet,
varible
}
//是这个的简写
// module.exports={
// hello:hello,
// greet:greet,
// varible:varible
// }