πŸ” Auth API

The Auth API handles user authentication, including signup, signin, email verification, password reset, and middleware for protecting routes.


Example Usage


const backend = require("dbackend"); // THE Backend

const auth = backend.auth({
  jwtSecret: "your_jwt_secret", // Your JWT secret key
  UserModel: User, // Your user model for authentication
  mailer: mailer, // Optional: Mailer for email verification and password reset
});

// Signup Example
await auth.signup({
    email: "user@example.com",
    password: "yourpassword",
    name: "Your Name",
});

// Signin Example
const result = await auth.signin({
    email: "user@example.com",
    password: "yourpassword",
});

// Verify Email Example
await auth.verifyEmail(verificationToken);

// Forgot Password Example
await auth.forgotPassword("user@example.com");

// Reset Password Example
await auth.resetPassword(resetToken, "newPassword123");

πŸ“§ Mailer API

The Mailer API allows you to send emails for user verification, password reset, and other notifications.


Example Usage


const backend = require("dbackend"); // THE Backend

const mailer = backend.mailer({
  service: "gmail", // Your email service (e.g., "gmail")
  auth: {
    user: "your-email@gmail.com",
    pass: "your-email-password",
  },
});

// Send Email Example
await mailer.sendMail({
    to: "user@example.com",
    subject: "Welcome to dbackend!",
    html: "<h1>Welcome to dbackend!</h1>",
});

βš™οΈ Middleware API

The Middleware API allows you to use built-in middleware for tasks like JSON parsing, URL encoding, and enabling CORS.


Example Usage


const backend = require("dbackend"); // THE Backend

const app = require("express")();

// Middleware Example
backend.middlewares(app, ["json", "urlencoded", "cors"]);

// Custom Middleware Example
backend.middlewares(app, [
  (req, res, next) => {
    console.log("Custom Middleware Triggered");
    next();
  },
]);

πŸ“Š MongoDB API

The MongoDB API connects your app to a MongoDB database using Mongoose.


Example Usage


const backend = require("dbackend"); // THE Backend

// MongoDB Connection Example
backend.mongodb({
  url: "mongodb://localhost:27017/mydb",
});

πŸ“„ Full Example

Here's a complete example that demonstrates how to use all the services in a simple app.


const backend = require("dbackend"); // THE Backend
const express = require("express");
const app = express();

// Setup Authentication
const auth = backend.auth({
  jwtSecret: "your_jwt_secret",
  UserModel: User,
  mailer: mailer,
});

// Setup Mailer
const mailer = backend.mailer({
  service: "gmail",
  auth: {
    user: "your-email@gmail.com",
    pass: "your-email-password",
  },
});

// Setup Middleware
backend.middlewares(app, ["json", "urlencoded", "cors"]);

// Setup MongoDB
backend.mongodb({ url: "mongodb://localhost:27017/mydb" });

// Sample Route: Signup
app.post("/signup", async (req, res) => {
  const { email, password, name } = req.body;
  try {
    await auth.signup({ email, password, name });
    res.status(200).send("Signup successful");
  } catch (error) {
    res.status(500).send("Error: " + error.message);
  }
});

// Sample Route: Send Email
app.post("/send-email", async (req, res) => {
  const { to, subject, html } = req.body;
  try {
    await mailer.sendMail({ to, subject, html });
    res.status(200).send("Email sent successfully");
  } catch (error) {
    res.status(500).send("Error: " + error.message);
  }
});

// Start the server
app.listen(3000, () => {
  console.log("Server running on port 3000");
});