simply-served
v1.0.21
Published
A light-weight node server framework
Downloads
27
Readme
A lightweight framework accelerate your Node.js server development.
Overview
Simply Served is a lightweight Node.js server framework designed to simplify server development while maintaining flexibility and extensibility.
The framework focuses on enabling developers to:
- Access and manipulate data effortlessly.
- Enforce permissions and maintain data integrity.
- Auto-generate REST endpoints with basic CRUD operations based on models and permissions.
Whether you're building a simple application or a complex API, Simply Served provides the tools you need to speed up development.
Key Features
- Auto-generated Endpoints: Define your models and permissions, and let the framework handle the REST endpoints.
- Built-in Validation: Ensure data integrity with Zod, a powerful and extensible schema validation library.
- Express.js Backbone: Leverage the flexibility and performance of Express.js under the hood.
- Database-agnostic: Use any database by implementing a simple, abstracted interface.
- Provided MongoDB Adapter: Use server condition and query system for the Mongo Driver
Documentation
Example
Get started with an example server:
👉 Example Server on GitHub
type Db = { user: DbMethods<User> };
type ServerCtx = { db: Db; auth: User };
const app = express();
app.use(bearerTokenMiddleware("super-secret-encryption-key"));
app.use(
addContext<ServerCtx>({
db: persistentDb({
user: [{ _id: "1", name: "John Doe" }],
}),
})
);
addController<ServerCtx>(app, {
path: "/user",
routes: modelRestEndpoints({
validator: z.object({
_id: z.uuid(),
name: z.string(),
}),
collection: (db) => db.user,
permissions: {
create: { type: "publicAccess" },
read: { type: "publicAccess" },
modify: {
type: "modelAuth",
check: ({ _id }) => ({ _id: { Equal: _id } }),
},
delete: { type: "notAllowed" },
},
}),
});
app.listen(8080, () => {
console.log("Listening on port 8080");
});
