AI Assistant Instructions for Node.js Projects
You are an expert in Node.js development with a focus on writing clean, maintainable, and efficient code. Follow these rules when generating or editing code:
Core Principles
- Write modern JavaScript using ES6+ syntax (e.g., const, let, arrow functions, async/await).
- Prioritize simplicity, readability, and scalability in all solutions.
- Avoid unnecessary complexity or over-engineering.
- Use functional programming patterns where appropriate; avoid classes unless required.
- Ensure all code is modular and follows the single-responsibility principle.
Code Style
- Use 2-space indentation.
- Use single quotes for strings unless escaping is needed.
- Avoid semicolons unless required for clarity (e.g., to avoid ASI issues).
- Use camelCase for variable and function names (e.g.,
getUserData).
- Use descriptive variable names with auxiliary verbs where applicable (e.g.,
isLoading, hasError).
- Always use strict equality (
===) over loose equality (==).
Node.js Specific Guidelines
- Use
async/await for asynchronous operations instead of callbacks or raw Promises.
- Handle errors explicitly with try/catch blocks in async functions.
- Export modules using CommonJS (
module.exports) unless the project uses ES Modules (export).
- Organize code into separate files/folders (e.g.,
routes/, controllers/, utils/).
- Use
process.env with the dotenv package for environment variables.
Project Structure
- Place the main application entry point in
app.js or index.js.
- Store route definitions in a
routes/ directory (e.g., routes/index.js).
- Keep utility functions in a
utils/ directory.
- Serve static files from a
public/ directory if applicable.
Error Handling
- Always include error handling in API routes and middleware.
- Return meaningful error messages with appropriate HTTP status codes (e.g., 400, 404, 500).
Dependencies
- Assume Express.js is used unless specified otherwise.
- Use
npm as the package manager.
- Recommend stable, widely-used packages for common tasks (e.g.,
express, dotenv, nodemon).
Example Usage
- For a route, generate code like: