受 Express.js 启发的极简 Dart 后端框架。
特性
- 类似于 Express.js 的简单直观的 API
- 内置路由系统,支持参数
- 请求主体解析 JSON 和表单数据
- 查询参数处理
- 路由参数提取
- 中间件支持
- 干净且可维护的代码库
安装
将 Wailuku 添加到你的pubspec.yaml
:
dependencies:
wailuku: ^0.2.0
基本用法
import 'package:wailuku/wailuku.dart';
void main() async {
var server = WailukuServer();
// GET request
server.get('/', (Request req, Response res) {
res.send('Hello World!');
});
// POST request with JSON body
server.post('/users', (Request req, Response res) {
var name = req.body['name'];
var age = req.body['age'];
res.json({
'message': 'User created',
'data': {'name': name, 'age': age}
});
});
// Route with parameters
server.get('/users/:id', (Request req, Response res) {
var userId = req.getParam('id');
res.send('User ID: $userId');
});
// Query parameters
server.get('/search', (Request req, Response res) {
var query = req.getQuery('q');
res.send('Search query: $query');
});
//Middleware examples
// simple middleware functions
void simpleMiddleware(Request req, Response res, Function next) {
print('simple middleware');
next();
}
void simpleMiddleware2(Request req, Response res, Function next) {
print('simple middleware 2');
next();
}
// Single middleware
server.get("/single-middleware", simpleMiddleware, (req, res) => res.send("Hello"));
// Multiple middlewares
server.get("/multiple-middlewares", [
simpleMiddleware,
simpleMiddleware2
], (req, res) => res.send("Hello"));
// No middleware
server.get("/no-middleware", (req, res) => res.send("Hello"));
// Register a Global middleware
server.use((req, res, next) {
print('Global middleware');
next();
});
// Register a Route-specific middleware
server.usePath("/users", (req, res, next) {
print('Route-specific middleware');
next();
});
await server.listen('localhost', 8080);
}
评论