引言
作为一名后端开发者,你是否经常为重复编写CRUD接口而感到厌倦?是否希望有一种方式能快速构建API,同时保持代码的可维护性?今天,我要向大家介绍一个我开发的低代码后端工具库——StreamlineCode,它基于Express.js封装,通过配置化的方式让后端开发变得前所未有的简单。
什么是StreamlineCode?
StreamlineCode是一个轻量级的Express后端开发工具库,旨在通过配置化的方式简化API开发流程。它封装了常见的后端开发功能,如数据库操作、认证、中间件管理等,让你可以通过简单的配置快速构建完整的API服务。
核心功能
1. 数据库操作自动化
StreamlineCode提供了简洁的数据库操作接口,支持常见的CRUD操作:
- findOne:根据条件查询单条记录
- find:查询多条记录,支持条件、排序和分页
- create:插入新记录
- update:更新记录
- delete:删除记录
底层使用mysql2/promise,支持自定义数据库配置,让数据库操作变得简单直观。
2. 智能路由配置
核心功能StreamlineRouter通过配置化的方式快速创建API路由,支持:
- 多种HTTP方法:GET、POST、PUT、DELETE
- 中间件自动管理:内置多种常用中间件,如身份验证、登录、注册、分页等
- 数据库操作自动绑定:通过简单配置,自动处理数据库操作
- 统一响应格式:自动包装响应为标准格式
3. 丰富的中间件支持
提供多种实用中间件:
- 认证中间件:JWT token生成与验证、用户登录注册验证
- 数据处理中间件:分类过滤、分页、数据打乱
- 响应中间件:统一响应格式处理
4. 高度可配置性
- 中间件参数化:支持通过配置传递参数给中间件
- 响应数据自定义:支持静态和动态响应数据配置
- 灵活的参数格式:支持字符串和对象两种格式的配置
快速开始
安装
npm i streamline-code-by-ikun2274
快速一个后端接口
import {
setDbConfig, startServer,
StreamlineRouter
} from 'streamline-code-by-ikun2274';
//引入 目前就这些
配置数据库
// 1. 配置数据库连接 目前只支持mysql2 待集成
setDbConfig({
host: 'localhost',
user: 'root', // 你的 MySQL 用户名
password: '123456', // 你的 MySQL 密码
database: 'my_test_db' // 数据库名
});
启动服务器
// 启动服务器
startServer({
port: 3001, // 服务器端口
allowedOrigins: [
'http://localhost:3000', // 前端地址
'http://127.0.0.1:5501' // 本地调试地址
]
});
查询所有数据(GET)
查询所有数据(GET)
StreamlineRouter({
url: '/api/users', // 路由路径
method: 'get', // HTTP 方法
PlusHandler: {
db: {
table: 'users', // 表名
operation: 'select' // 操作类型(查询)
},
other: {
successMessage: '获取用户列表成功' // 成功消息
}
}
});
按 ID 查询
按 ID 查询单个数据(GET)
StreamlineRouter({
url: '/api/users/:id', // 带 ID 路径参数
method: 'get',
PlusHandler: {
db: {
table: 'users',
operation: 'select'
},
other: {
successMessage: '获取用户详情成功'
}
}
});
创建数据(POST)
创建数据(POST)
StreamlineRouter({
url: '/api/users',
method: 'post',
PlusHandler: {
db: {
table: 'users',
operation: 'create' // 操作类型(创建)
},
other: {
successMessage: '创建用户成功'
}
}
});
更新数据(PUT)
更新数据(PUT)
StreamlineRouter({
url: '/api/users/:id', // 带 ID 路径参数
method: 'put',
PlusHandler: {
db: {
table: 'users',
operation: 'update' // 操作类型(更新)
},
other: {
successMessage: '更新用户成功'
}
}
});
删除数据 DELETE
StreamlineRouter({
url: '/api/users/:id', // 带 ID 路径参数
method: 'delete',
PlusHandler: {
db: {
table: 'users',
operation: 'delete' // 操作类型(删除)
},
other: {
successMessage: '删除用户成功'
}
}
});
使用内置中间件 我这个支持对象/字符串 /字符串数组
StreamlineRouter({
url: '/api/paginated/users',
method: 'get',
BuiltinMid: {
Parameter: ['pagination:10'] // 每页10条
},
PlusHandler: {
db: {
table: 'users',
operation: 'select'
},
other: {
successMessage: '获取分页用户列表成功'
}
}
});
// 示例 使用多个中间件 - 分页 + 分类筛选
StreamlineRouter({
url: '/api/filtered/users',
method: 'get',
BuiltinMid: {
Parameter: [
'pagination:15', // 每页15条
'categoryFilter:type_id' // 使用type_id作为分类字段
]
},
PlusHandler: {
db: {
table: 'users',
operation: 'select'
},
other: {
successMessage: '获取筛选后用户列表成功'
}
}
});