转载自: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:类型安全的数据库客户端ORM替代方案** 在现代Web开发中,Node.js凭借其非阻塞I/O模型和JavaScript语言的便利性,已经成为后端开发的重要选择。为了提高开发效率和代码质量,...
Node.js作为一个服务器端的JavaScript运行环境,使得开发者可以使用JavaScript来构建高性能的网络应用程序。全栈工程师是指掌握前端、后端以及数据库等多方面技术的开发者,他们能够从项目的构思、设计到实现以及...
- **Node.js简介**:Node.js是一个开源的JavaScript运行时环境,它允许开发者使用JavaScript编写服务器端的应用程序。 - **非阻塞I/O模型**:Node.js采用事件驱动、非阻塞I/O模型,这使得其非常适合处理并发请求密集...
Node.js 拥有一个庞大的生态系统——NPM(Node Package Manager),这是全球最大的 JavaScript 软件包仓库,包含超过 150 万个包,覆盖了从开发工具到数据库驱动、从安全性增强到性能优化的各个方面。这使得开发者...
在这个“Node.js开发指南微博例子”中,我们将探讨如何使用Node.js构建一个微型博客系统——Microblog。 首先,我们要了解Node.js的基础。Node.js的核心在于它的异步编程模型,这使得它可以同时处理多个请求而不会...
这是一个全面的前端与后端整合项目,利用了现代Web开发中的主流技术栈——Vue.js全家桶(包括Vue.js、Vuex、Vue Router等)、Node.js和MongoDB。这个项目不仅展示了如何构建一个完整的Web应用程序,还揭示了如何将...
在本项目中,我们主要探讨的是一个基于Node.js的本科毕业设计——一款利用无人机送餐的外卖点餐微信小程序系统。这个系统集成了前端用户界面和后端服务器,旨在为用户提供方便快捷的在线订餐服务,并通过无人机进行...
Backbone.js则是JavaScript的一个轻量级MVC(模型-视图-控制器)框架,用于组织前端代码结构。 **Node.js基础知识** Node.js的核心优势在于其非阻塞I/O模型和事件驱动架构,这使得它在处理大量并发请求时表现出色。...
在这个场景中,"Vesper的API服务器"指的是使用Node.js技术构建的一个服务端应用程序,它为Q Branch的iOS笔记应用——Vesper提供后端支持。 1. **Node.js基础** - **事件驱动编程**:Node.js的核心特性之一是其事件...
这个项目可能使用了Node.js,一个基于Chrome V8引擎的JavaScript运行环境,为服务器端编程提供了一个强大而高效的平台。Node.js以其非阻塞I/O和事件驱动的特性,使得它在处理高并发请求时表现出色,特别适合构建大型...
4. **NestJS框架**:NestJS是一个渐进式的企业级JavaScript框架,它受到了Angular的影响,引入了依赖注入和模块化等概念。NestJS旨在提高代码的可测试性和可维护性,适用于构建大型、复杂的Web应用。 5. **Total.js...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。自2009年诞生以来,Node.js以其高效的I/O处理、非阻塞I/O模型以及模块化设计,迅速成为Web开发领域的一个热门...
本文将深入探讨一个基于原生Node.js实现的简单HTTP服务框架——"node_frame_demo"。这个框架虽然功能简单,但足以让我们对Node.js构建HTTP服务器的流程有更直观的理解。我们将会通过分析其核心代码,了解如何进行...
1. **Node.js**:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。由于其非阻塞I/O和事件驱动的特性,Node.js 极适合用于构建高效、可扩展的网络应用,如聊天室。在 ChatRoom 应用中,Node.js 负责处理...
Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。将MongoDB与Node.js结合使用,可以构建高性能的实时网络应用。 在"mongodb_node.js"的学习中,首先需要理解...
Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地扩展了JavaScript的应用范围。 在描述中提到的"一个简单的node.js博客平台"表明,这个项目可能是为了教学...
CNodeJS是基于Node.js构建的,Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码。通过CNodeJS源码,我们可以学习到如何利用Node.js的非阻塞I/O模型来处理高并发...
在"中级Node.js"这个课程中,我们将深入学习JavaScript的服务器端实现——Node.js。Node.js以其高效的非阻塞I/O模型和事件驱动特性,成为构建高性能网络应用的理想选择。这个课程旨在帮助开发者从基础知识过渡到更...
Node.js,作为一个强大的JavaScript运行环境,因其高效、轻量级和异步I/O的特点,在Web开发领域得到了广泛的应用。本教程将深入探讨如何利用Node.js构建一个简单的个人博客系统,涵盖前端与后端的实现,但不涉及具体...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境。它的特点是使用了事件驱动、非阻塞I/O模型,使得它轻量又高效,特别适合于构建网络应用,尤其是实时通信应用。 二、项目结构 在"simple-messenger-master"这...