systemblocks
v1.3.9
Published
blocks bases easy rest api building framework.
Downloads
6
Readme
SystemBlocks ·
blocks bases easy rest api building framework.
Installing ?
npm i -S systemblocks
Starting express server ?
file: /index.js
import * as Blocks from 'systemblocks/core/class';
Blocks.Init();
Config file
file: /config/index.js
export default {
db: "mongodb://localhost:27017/systemblocks",
TIMEOUT: {
HOOK_PROMISE: 20 * 1000
}
}
New database modal ?
file: /applications/auth/modals/user.js
import mongoose from 'mongoose';
import * as Blocks from 'systemblocks/core/class';
const { Schema } = mongoose;
export default class User extends Blocks.Modal {
constructor() {
const structure = new mongoose.Schema({
name: { type: String, required: true },
username: { type: String, required: true },
password: { type: String, required: true }
});
super({ structure, application: "auth", name: "User" });
}
}
* Note that collection name in database will be 'auth_users'
New Route ?
file: /applications/auth/routes/login.js
import Joi from "joi";
import * as Blocks from "systemblocks/core/class";
import { Method } from "systemblocks/core/decorator";
export default class LoginController extends Blocks.Controller {
constructor() {
super({ application: "auth" });
}
@Method({
method: "PUT",
parameters: {
name: Joi.string().required(),
username: Joi.string().required(),
password: Joi.string().required()
}
})
async save(req, res) {
const { name, username, password } = req.body;
const saved = await new _block.modals.auth.User({
name, username, password
}).save();
res.json(new Blocks.Output(saved));
}
@Method({
method: "GET"
})
async list(req, res) {
const users = await _block.modals.auth.User.find({});
res.json(new Blocks.Output(users));
}
}
Test Now
Create User
PUT /auth/login
{
"name": "Hashan Chathuranga",
"username": "test",
"password": "Aa1"
}