基于Knex.js的Node.js ORM框架 bookshelf

未知
JavaScript HTML/CSS
跨平台
2015-09-25
翟志军

一个基于Knex.js的Node.js ORM框架,支持PostgreSQL,MySQL和SQLite3

简单来说,Bookself是一个优秀的代码库,它易于阅读、理解、可扩展。它不强制你使用任何特定的校验scheme,而是提供灵活有效的关系或嵌套关系加载策略,一级类支持事务。它是一个精益的对象关系映射器(lean Object Relation Mapper),允许你使用原始的knex接口,当你需要自定义查询时,因为它有时并不能完全满足老一套的惯例。

Bookshelf遵从和Backbone.js一样棒的Models和Collections思想,使用相同的模式、命名惯例和哲学构建轻量、易于操控的ORM。如果你已经了解Backbone,你就知道如何使用Bookshelf.

示例:

var knex = require('knex')({client: 'mysql', connection: process.env.MYSQL_DATABASE_CONNECTION });
var bookshelf = require('bookshelf')(knex);
var User = bookshelf.Model.extend({
  tableName: 'users',
  messages: function() {
    return this.hasMany(Posts);
  }
});
var Posts = bookshelf.Model.extend({
  tableName: 'messages',
  tags: function() {
    return this.belongsToMany(Tag);
  }
});
var Tag = bookshelf.Model.extend({
  tableName: 'tags'
})
User.where('id', 1).fetch({withRelated: ['posts.tags']}).then(function(user) {
  console.log(user.related('posts').toJSON());
}).catch(function(err) {
  console.error(err);
});


加载中

评论(1)

jluflyingz
jluflyingz

暂无资讯

暂无问答

设计模式学习笔记(12)迭代器

本文实例代码:https://github.com/JamesZBL/java_design_patterns 迭代器(Iterator)模式又称游标模式,是集合类型对外提供统一的顺序访问元素而隐藏内部的实现细节的一种方式,是一种行为...

2018/06/27 15:40
2
0
Android 开发设计模式第一篇:迭代器模式

Iterator Pattern迭代器模式 场景猜想   经常编写代码都会碰到遍历一个数组,使用for循环得到数组下标之后去做进一步操作。例如下文代码:  int[] array=new int[5];         f...

2014/07/03 09:40
566
0
实现一种书本的展示特效

最近在做一个电子书的项目,其中有一个书架的功能。看了很多其他应用的书架,有些实现的效果真的很不错,就比如《宝宝爱看书》,于是也仿着自己写了一个,虽然最后没能用在项目中,但是还是觉...

2012/07/16 16:09
101
0
学习apache commons的兴趣小组

我打算commons的源码,大约2-3周读一个组件,并且写用法和源码心得的主题 目前的计划读的顺序如下: Lang Math Primitives BeanUtils Collections Digester IO Configuration Pool DBCP DbU...

2010/04/10 03:42
556
0
设计模式之迭代器模式(Iterator)

1参考文章 参考1:http://topic.csdn.net/u/20080722/16/e7fcffc3-3d54-48f6-9d3a-2cd39073a287.html 参考2:http://www.java63.com/design_pattern/iterator_pattern.html 参考3:http://bl...

2013/08/23 15:32
55
0
erlng file id3v1 id3v1.1

%% --- %% Excerpted from "Programming Erlang", %% published by The Pragmatic Bookshelf. %% Copyrights apply to this code. It may not be used to create training material, %% cour...

2018/08/14 21:18
2
0
android书架效果

首先看一下layout下的布局文件main.xml [html] view plain copy <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" and...

2013/11/04 11:03
363
0
Bundle的部署和安装

以下内容参考《OSGi and Apache Felix 3.0 Beginner's Guide》,作为自己的学习记录。 在OSGi框架中,bunlde作为其模块化实体,我们把bundle作为一个project进行开发。 开发: 1. 使用maven...

2012/08/18 22:14
770
0
Open Source Development With CVS

Open Source Development with CVS by Karl Fogel -------------------------------------------------------------------------------- A Free CVS Book Open Source Development with CVS ...

2013/07/28 17:29
19
0
OpenNURBS 3DM Viewer

OpenNURBS 3DM Viewer eryar@163.com Abstract. The openNURBS Toolkit consists of C++ source code for a library that will read and write a openNURBS 3D model file(.3dm). More than ...

2014/11/23 12:41
71
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部