Core Modules
- fsFile system
- pathPath utilities
- http/httpsHTTP server
- osOS information
- eventsEvent emitter
- cryptoCryptography
- streamStream handling
npm Commands
- npm initCreate package.json
- npm installInstall deps
- npm install -DDev dependency
- npm updateUpdate packages
- npm runRun script
- npm outdatedCheck updates
Global Objects
- __dirnameCurrent dir
- __filenameCurrent file
- processProcess info
- consoleConsole output
- BufferBinary data
- moduleModule object
Process Object
- process.envEnvironment vars
- process.argvCLI arguments
- process.cwd()Working dir
- process.exit()Exit process
- process.pidProcess ID
File System (fs/promises)
import { readFile, writeFile, mkdir } from 'fs/promises';
// Read file
const data = await readFile('./file.txt', 'utf8');
// Write file
await writeFile('./output.txt', 'Hello World');
// Create directory
await mkdir('./newdir', { recursive: true });
// Check if exists
import { access } from 'fs/promises';
try {
await access('./file.txt');
} catch { /* doesn't exist */ }
HTTP Server
import http from 'http';
const server = http.createServer((req, res) => {
if (req.url === '/' && req.method === 'GET') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Hello' }));
}
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});
Path Module
import path from 'path';
path.join('/foo', 'bar')
// /foo/bar
path.resolve('./file.txt')
// Absolute path
path.dirname('/foo/bar.txt')
// /foo
path.basename('/foo/bar.txt')
// bar.txt
path.extname('file.txt')
// .txt
Event Emitter
import { EventEmitter } from 'events';
const emitter = new EventEmitter();
// Listen for event
emitter.on('data', (msg) => {
console.log(msg);
});
// Emit event
emitter.emit('data', 'Hello!');
// Once listener
emitter.once('connect', () => {});
Async Patterns
// Promises
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('data'), 1000);
});
};
// Async/Await
async function main() {
try {
const data = await fetchData();
const [a, b] = await Promise.all([task1(), task2()]);
} catch (err) {
console.error(err);
}
}
Streams
import { createReadStream } from 'fs';
import { pipeline } from 'stream/promises';
const readable = createReadStream('input.txt');
readable.on('data', (chunk) => {
console.log(chunk);
});
// Pipeline
await pipeline(
readStream,
transformStream,
writeStream
);
ES Modules
// Named exports
export const add = (a, b) => a + b;
export { add, subtract };
// Default export
export default class App {}
// Import
import App from './app.js';
import { add } from './math.js';
import * as utils from './utils.js';