Sutando: Node.js 版的 Laravel ORM
Laravel 和 Rails 的 ORM 几乎是大家公认最好用的 ORM ,Sutando 就是他们在 Node.js 里的 “复刻版”。
虽然 AdonisJS 框架的 ORM 也类似,但是它并不能脱离 Adonis 使用,Sutando 可以使用在任何 Node.js 框架中。
如果你之前用过 Laravel ,那你使用 Sutando 几乎没有学习成本,因为它们的使用起来几乎相同 (功能实现了 80%+)。
地址: github.com/sutandojs/sutando
文档: sutando.org
安装:
npm install sutando mysql2 --save
建立连接 & 定义模型:
const { sutando, Model } = require('sutando');
// 连接信息
sutando.addConnection({
client: 'mysql2',
connection: {
host : '127.0.0.1',
port : 3306,
user : 'root',
password : '',
database : 'test'
},
});
const db = sutando.connection();
// 查询构造器
const users = await db.table('users').where('age', '>', 35).get();
// 模型定义
class User extends Model {}
CRUD:
// 查询
const users = await User.query().where('age', '>', 35).get();
// 新增
const user = new User;
user.name = 'David Bowie';
await user.save();
// 删除
await user.delete();
// 分页
const users = await User.query().paginate(1, 15);
// 关联预加载
const users = await User.query().with('posts').get();
// 关联条件
const users = await User.query().with({
posts: q => q.where('likes_count', '>', 100)
}).get();
// 关联延迟加载
await user.load('posts');
await users.load('posts');
推荐文章: