Node.js
には2つの異なるモジュール管理システムがあります: CommonJS と ES Modules (ECMAScript Modules)。あなたが挙げた2つのコードの違いは、このモジュールシステムに基づいています。
1. CommonJS (const express = require('express')
)
- CommonJSは、Node.jsのデフォルトのモジュール管理システムです。
-
require()
を使ってモジュールをインポートします。 - ファイル拡張子が
.js
の場合、Node.jsはデフォルトでCommonJSモジュールとして扱います。
const express = require('express');
- この形式は、Node.js環境で長年使われてきた標準的な書き方です。
2. ES Modules (import express from 'express'
)
- **ES Modules (ECMAScript Modules)**は、JavaScriptの最新仕様に基づくモジュールシステムです。
-
import
を使ってモジュールをインポートします。 - ES Modulesを使う場合、通常は
.mjs
拡張子を使います。または、package.json
ファイルで"type": "module"
を設定する必要があります。
import express from 'express';
- ES Modulesは、JavaScriptの最新の標準であり、ブラウザや新しいNode.jsバージョンでもサポートされています。
主な違い
-
require()
は CommonJSで使用され、import
は ES Modulesで使用されます。 - ES Modulesを使うには、設定を行う必要があります(ファイルの拡張子や
package.json
の設定など)。 - CommonJSは古くから使われているモジュールシステムで、ほとんどのNode.jsプロジェクトでは依然としてよく使われていますが、ES Modulesは新しい標準として徐々に普及しています。
どちらを使うべきかは、プロジェクトの要件や互換性によります。