`

一个Node.js ORM框架——ORM2

 
阅读更多

转载自:http://vicdory.com/node-orm-framework-orm2.html

 

习惯了Java中的Hibernate,在使用Node时老是写SQL语句很不爽,最近找到了一个比较好用的Node.js ORM框架,名字也很霸气,叫做ORM2,github地址是https://github.com/dresende/node-orm2.

下面举几个ORM2的基本用法,相信看完后就能在Node项目直接使用。

 

连接数据库

ORM2支持MySQL、PostgreSQL、Amazon Redshift、SQLite四种数据库

var orm = require("orm");
orm.connect("mysql://username:password@host/database", 
    function (err, db) {
    // ...
});

 当然规范点应该搞个DB配置文件

var opts = {
    database: "yourdb",
    protocol: "mysql",
    host: "127.0.0.1",
    username: "root",
    password: "root",
    query: {
        pool: true,
    },
};
 
orm.connect(opts, function(err, db) {
    // ...
});

 

定义Model

ORM最重要的一步应该是定义Model,很简单,在连接MySQL后的回调中使用db定义一个Model类

db.define('User', {
    name: String,
    email: String,
    password: String,
}, {
    id: "uuid",
});

 在这里可以指定属性的类型、长度、是否可空等选项。

同步数据库

//同步User表
User.sync(function (err) {
    console.log("done!");
});
//也可以使用db.sync()同步所有表

 

CRUD操作

定义Model后,增删改查就会很简单的了

//插入数据
User.create([{
    name: 'a',
    email: 'a@a.com',
    password: 'aa',
}, {
    name: 'b',
    email: 'b@b.com',
    password: 'bb',
}], function(err, items) {
    // pass
});
//查找数据
User.find({
    name: "admin"})
    .limit(3)
    .offset(2)
    .only("name", "email")
    .run(function(err, data) {
    //非常漂亮的链式风格有木有~~~
    //查询name为admin的用户,跳过前2个,保留3个结果而且只需要返回name和email字段
});
//更新、删除数据
//更新db只需调用save即可
SomeOne.save(function(err) {
    console.log("done!");
});
//删除
SomeOne.remove(function(err) {
    console.log("done!");
});
//上面的SomeOne实例必须包含了uuid属性。

 基本的用法就是这样子了,高级的用法还有Model之间的对应关系,一对多,多对多什么的,可以参考官网的Associations

分享到:
评论

相关推荐

    Node.js-PhotonJS-TypeScript和Node.js的类型安全数据库客户端ORM替换品

    **Node.js 开发框架—— PhotonJS:类型安全的数据库客户端ORM替代方案** 在现代Web开发中,Node.js凭借其非阻塞I/O模型和JavaScript语言的便利性,已经成为后端开发的重要选择。为了提高开发效率和代码质量,...

    全栈工程师之路Node.js.pdf

    Node.js作为一个服务器端的JavaScript运行环境,使得开发者可以使用JavaScript来构建高性能的网络应用程序。全栈工程师是指掌握前端、后端以及数据库等多方面技术的开发者,他们能够从项目的构思、设计到实现以及...

    Practical Node.js 2nd Edition

    - **Node.js简介**:Node.js是一个开源的JavaScript运行时环境,它允许开发者使用JavaScript编写服务器端的应用程序。 - **非阻塞I/O模型**:Node.js采用事件驱动、非阻塞I/O模型,这使得其非常适合处理并发请求密集...

    Node.js:开启全栈开发的钥匙.pdf

    Node.js 拥有一个庞大的生态系统——NPM(Node Package Manager),这是全球最大的 JavaScript 软件包仓库,包含超过 150 万个包,覆盖了从开发工具到数据库驱动、从安全性增强到性能优化的各个方面。这使得开发者...

    Node.js开发指南微博例子

    在这个“Node.js开发指南微博例子”中,我们将探讨如何使用Node.js构建一个微型博客系统——Microblog。 首先,我们要了解Node.js的基础。Node.js的核心在于它的异步编程模型,这使得它可以同时处理多个请求而不会...

    基于Vue全家桶、Node.js和Mongodb的前后端整合项目.zip

    这是一个全面的前端与后端整合项目,利用了现代Web开发中的主流技术栈——Vue.js全家桶(包括Vue.js、Vuex、Vue Router等)、Node.js和MongoDB。这个项目不仅展示了如何构建一个完整的Web应用程序,还揭示了如何将...

    node.js本科毕业设计基于无人机送餐的外卖点餐微信小程序系统源码.zip

    在本项目中,我们主要探讨的是一个基于Node.js的本科毕业设计——一款利用无人机送餐的外卖点餐微信小程序系统。这个系统集成了前端用户界面和后端服务器,旨在为用户提供方便快捷的在线订餐服务,并通过无人机进行...

    Node应用程序构建——使用MongoDB和Backbone

    Backbone.js则是JavaScript的一个轻量级MVC(模型-视图-控制器)框架,用于组织前端代码结构。 **Node.js基础知识** Node.js的核心优势在于其非阻塞I/O模型和事件驱动架构,这使得它在处理大量并发请求时表现出色。...

    Node.js-Vesper的API服务器

    在这个场景中,"Vesper的API服务器"指的是使用Node.js技术构建的一个服务端应用程序,它为Q Branch的iOS笔记应用——Vesper提供后端支持。 1. **Node.js基础** - **事件驱动编程**:Node.js的核心特性之一是其事件...

    小米商城——Node后端.zip

    这个项目可能使用了Node.js,一个基于Chrome V8引擎的JavaScript运行环境,为服务器端编程提供了一个强大而高效的平台。Node.js以其非阻塞I/O和事件驱动的特性,使得它在处理高并发请求时表现出色,特别适合构建大型...

    很好js后台框架,很不错哦

    4. **NestJS框架**:NestJS是一个渐进式的企业级JavaScript框架,它受到了Angular的影响,引入了依赖注入和模块化等概念。NestJS旨在提高代码的可测试性和可维护性,适用于构建大型、复杂的Web应用。 5. **Total.js...

    notejs资源下载

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。自2009年诞生以来,Node.js以其高效的I/O处理、非阻塞I/O模型以及模块化设计,迅速成为Web开发领域的一个热门...

    node_frame_demo.zip

    本文将深入探讨一个基于原生Node.js实现的简单HTTP服务框架——"node_frame_demo"。这个框架虽然功能简单,但足以让我们对Node.js构建HTTP服务器的流程有更直观的理解。我们将会通过分析其核心代码,了解如何进行...

    ChatRoom:Node.js 的 ChatRoom 应用程序——自学

    1. **Node.js**:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。由于其非阻塞I/O和事件驱动的特性,Node.js 极适合用于构建高效、可扩展的网络应用,如聊天室。在 ChatRoom 应用中,Node.js 负责处理...

    mongodb_node.js:mongodb和node.js的基本学习,和Mongoos框架的学习CURD 和关联关系

    Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。将MongoDB与Node.js结合使用,可以构建高性能的实时网络应用。 在"mongodb_node.js"的学习中,首先需要理解...

    simple-blog:一个简单的node.js博客平台

    Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地扩展了JavaScript的应用范围。 在描述中提到的"一个简单的node.js博客平台"表明,这个项目可能是为了教学...

    cnodejs源码

    CNodeJS是基于Node.js构建的,Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码。通过CNodeJS源码,我们可以学习到如何利用Node.js的非阻塞I/O模型来处理高并发...

    中间节点课程:中间node.js课程

    在"中级Node.js"这个课程中,我们将深入学习JavaScript的服务器端实现——Node.js。Node.js以其高效的非阻塞I/O模型和事件驱动特性,成为构建高性能网络应用的理想选择。这个课程旨在帮助开发者从基础知识过渡到更...

    剧中人的nodeJS版个人博客,仅仅是前后端实现,不包含博文数据.zip

    Node.js,作为一个强大的JavaScript运行环境,因其高效、轻量级和异步I/O的特点,在Web开发领域得到了广泛的应用。本教程将深入探讨如何利用Node.js构建一个简单的个人博客系统,涵盖前端与后端的实现,但不涉及具体...

    simple-messenger:Node.js 简单信使

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境。它的特点是使用了事件驱动、非阻塞I/O模型,使得它轻量又高效,特别适合于构建网络应用,尤其是实时通信应用。 二、项目结构 在"simple-messenger-master"这...

Global site tag (gtag.js) - Google Analytics