create-mydjs
v1.1.3
Published
MyD.JS is a backend project template built on Express and written in TypeScript.
Maintainers
Readme
MyD.JS
Myd.JS is a lightweight, modular backend framework built on top of Express.js, designed to simplify development with TypeScript. It introduces a Tree Routing concept for better route management and a highly modular structure.
Features
- TypeScript First: ✅ Full TypeScript support.
- Express-Based: Leverages the robustness and simplicity of Express.js.
- Modular Design: Organize your backend into blocks for better maintainability.
- Tree Routing: Define routes hierarchically for clarity and ease.
- Simple CLI Tool: Start your project with a single command:
npx create-mydjs.
Current Language Support
| Language | Status | | -------------- | -------------- | | TypeScript | ✅ Ready | | JavaScript | 🚧 In Progress |
Getting Started
Installation
npx create-mydjsThis command will generate a new MyD.JS project with all the necessary setup.
Documentation
Refer to the following documentation for detailed guides and examples:
- Block: Learn about defining and using blocks.
- Configuration: Customize your app settings.
- Logger: Logging utilities for better debugging.
- Middleware: Apply and manage middleware in your app.
- onListen: Customize behavior when the server starts.
- pre: Run code before the server starts listening.
- Routing: Understand the Tree Routing concept.
Example
Highlight: main.ts
import mainBlock from "main.block";
import App from "myd";
const app = App({
blocks: [mainBlock],
config: {
server: {
host: "0.0.0.0",
port: 3431,
},
},
});
export default app;Highlight: main.block.ts
import { defineBlock } from "myd";
import express from "express";
export default defineBlock({
path: "/", // base path
middlewares: [express.urlencoded()], // similar to express.use()
routes: {
"/": async (req, res) => {
res.json({ message: "❤️ Welcome to MyD.JS" });
},
"/article/:id": {
GET: (req, res) => {
res.json({ message: "Article ID" });
},
POST: [
express.json(), // middleware for one route and one method
(req, res) => {
res.json(req.body /**return JSON */);
},
],
"/detail": {
POST: (req, res) => {
res.json({ message: req.params.id /** $ID from "/user/:id" */ });
},
},
},
},
});Contributing
Contributions are welcome! Feel free to open issues or submit pull requests to improve the framework.
License
This project is licensed under the MIT License.
