LAB / EXPLORATION
TypeScript Lab: MIME Type Server
Planned
LAB 089 — Node HTTP & APIs
Serve several file types with correct Content-Type headers.
LAB
TypeScript Lab: MIME Type Server
Preview coming soon
TypeScript Lab: MIME Type Server
Concept
File extensions map to MIME types that tell browsers how to interpret responses.
Concept
File extensions map to MIME types that tell browsers how to interpret responses.
Objective & Explanation
What the project should make visible and why the concept matters.Learning Target
Objective
Serve several file types with correct Content-Type headers.
Explanation
File extensions map to MIME types that tell browsers how to interpret responses.
Project Plan
Structure, technologies, data boundary, and source connection.Build Instructions
Build only the focused behavior, then use the visual layer to inspect it.Setup
Create the standalone project folder and listed files.Install TypeScript locally and initialize the compiler configuration.
Implement
Implement the smallest version that demonstrates the concept.- Implement the focused Node HTTP behavior in server.ts.
- Run the compiled server and open the local browser page.
Run & Inspect
Use the interface to trigger and inspect the request/response behavior.Change one input or action and confirm the visible result changes for the expected reason.
Code & Configuration
Starter configuration plus the focused implementation example.Focused TypeScript
Implement this behavior first, then alter the input.const MIME_TYPES: Record<string, string> = {
".html": "text/html; charset=utf-8",
".css": "text/css; charset=utf-8",
".js": "text/javascript; charset=utf-8",
".json": "application/json; charset=utf-8",
};Starter Configuration
Keep the project independently buildable.package.json
{
"type": "module",
"scripts": {
"build": "tsc",
"start": "npm run build && node --enable-source-maps dist/server.js"
},
"devDependencies": {
"@types/node": "^26.4.0",
"typescript": "^7.0.2"
}
}tsconfig.json
{
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist",
"target": "ES2022",
"module": "ES2022",
"lib": ["ES2022", "DOM"],
"types": ["node"],
"strict": true,
"sourceMap": true
},
"include": ["src/**/*.ts"]
}Expected Visual Result
The output is the proof that the concept is working.Visible Proof
The browser should visibly demonstrate: serve several file types with correct Content-Type headers.
Data: None