☄️Quick Start
This example very briefly illustrates the 3 methods available in Crud Node.
Config
// config.{ts|js}
import { MySQL } from 'crud-node';
// Connection configuration object
export const connection = {
host: 'localhost',
port: 3306,
schema: 'db',
password: 'user',
user: 'user',
timezone: '+00:00',
};
export const settings = {
ciCollation: 'utf8mb4_0900_ai_ci',
};
export const db = new MySQL(connection, settings);
await db.connect();
Schema
// employeeSchema.{ts|js}
import { IDocumentSchema, IDocument, getDocument, generateId } from 'crud-node';
export enum EmployeeProps {
_id = '_id',
createdAt = 'createdAt',
email = 'email',
lastName = 'lastName',
firstName = 'firstName',
responsibilities = 'responsibilities',
officeId = 'officeId',
fired = 'fired',
}
export const employeeSchema: IDocumentSchema<EmployeeProps> = {
name: 'employee',
alias: 'emp',
generatedId: false,
unique: [[EmployeeProps.email]],
getDocument: (data: Partial<IDocument<EmployeeProps>>): IDocument<EmployeeProps> => {
const createdAt = Date.now().toString();
const defaults: Partial<IDocument<EmployeeProps>> = {
_id: generateId(employeeSchema.alias),
createdAt,
};
return getDocument(EmployeeProps, data, defaults);
},
toString: (data: IDocument<EmployeeProps>) => {
return `${data.firstName} ${data.lastName}`;
},
};
Router
// employeeRouter.{ts|js}
import { employeeController } from './employeeController';
import { CRUDMySQL } from 'crud-node';
import { employeeSchema } from './schemas/employee';
// Executes operations in a single transaction
const transacted = true;
const employeeController = new CRUDMySQL(db, employeeSchema);
// Create record
await db.usingSession(async (session) => {
const payload = {
email: 'leslie46@24mailin.com',
firstName: 'Leslie',
lastName: 'Brett',
};
const data = await employeeController.createDocument(session, payload);
}, transacted);
// Update record
await db.usingSession(async (session) => {
const employeeId = '<_id>';
const payload = {
email: 'leslie46@24mailin.com',
firstName: 'Leslie',
lastName: 'Brett',
};
const data = await employeeController.updateDocument(session, employeeId, payload);
}, transacted);
// Delete record
await db.usingSession(async (session) => {
const employeeId = '<_id>';
const data = await employeeController.deleteDocument(session, employeeId);
}, transacted);
The next sections of the documentation will go over each of these methods in great detail.
Last updated