beyondst/nodejs-rules icon
public
Published on 4/2/2025
nodejs-rules

Rules
nodejs-rules
# Node.js MVP Minimal Code Rules (Single File Edition)

Mandatory Core Principles: Keep only the most basic runnable backend structure

1. Simplified File Structure:
   - app.js (Main file containing):
     ├── Basic config (env/port)
     ├── Routes directly connected to controllers
     ├── Validation middleware
     ├── Unified error handling
     └── Service startup

2. Code Iron Rules:
```javascript
// Example skeleton code
require('dotenv').config();
const express = require('express');
const Joi = require('joi');

// In-memory database example (No real DB in MVP phase)
let users = [];

// Validation middleware
const validateUser = (req, res, next) => {
  const schema = Joi.object({
    name: Joi.string().min(3).required()
  });
  const { error } = schema.validate(req.body);
  if (error) return res.status(400).json({ error: error.details[0].message });
  next();
};

const app = express();
app.use(express.json());

// Minimal route-controller combination
app.get('/users', (req, res) => {
  res.json({ data: users });
});

app.post('/users', validateUser, (req, res) => {
  users.push(req.body);
  res.status(201).json({ data: req.body });
});

// Unified error format
app.use((err, req, res, next) => {
  res.status(500).json({ 
    error: 'SERVER_ERROR',
    message: err.message 
  });
});

app.listen(process.env.PORT || 3000);