Two different syntax and are suitable for different JavaScript environments:
- ES Modules (import statement):
import express from 'express';
- This syntax is part of ECMAScript (ES) modules, introduced in ES6 (ECMAScript 2015).
- It is the recommended and modern way to handle module imports in JavaScript when you are working with a bundler like Webpack or using a JavaScript environment that supports ES modules (e.g., Node.js with
"type": "module"
inpackage.json
). - It provides a more standardized and explicit way to import and export modules.
- You can use named imports (e.g.,
import { Router } from 'express';
) to import specific parts of a module.
- CommonJS Modules (require function):
const express = require('express');
- This syntax is part of CommonJS modules, which have been the traditional way to handle module imports in Node.js.
- It works well with Node.js without any additional configuration.
- It uses the
require
function to load modules and assigns them to variables. - It’s still widely used in existing Node.js applications and libraries.
If you are working on a modern Node.js project with support for ES modules (e.g., Node.js 14+ with "type": "module"
in package.json
), you can use the import
statement. Otherwise, if you are working in an older Node.js environment or with existing code that uses CommonJS modules, you should use require
.