首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

nodejs-ORM 操作数据库中间件waterline的使用

waterline和Sails.js同一团队开发,支持几乎所有的主流数据库,是nodejs下一款非常强大的orm,可以显著提升开发效率 一.waterline支持的数据库 二.waterline的配置...但要注意,指定属性的字段时,使用的是一个字符串值,而不是 JavaScript 中的具体类型,目前支持的数据类型有 string / text / integer / float / date /time...注意:   1.如果没有定义主键,那么waterline会为你默认创建名为id的主键,类型是整型自增长   2.waterline自动创建表时会为你添加 createdAt、updatedAt两个字段,...,请按照下图设置,否则waterline将会删除已经存在表且根据model重新创建,以前的数据就完蛋了 四.校验器 校验器是在创建数据集合的时候指定给具体的属性的 更多设置请查看:https://www.npmjs.com...1.新建一个js文件:waterline.js,代码如下: 1 var mysqlAdapter = require('sails-mysql'); 2 var Waterline = require

1.9K30

再谈 API 的撰写 - 总览

node.js 下有很多适合于写 API 的框架,比如说:express,restify,hapi,loopback,sails.js 等。...在接下来的文章中,我会详细介绍 swagger。 我们再看 ORM。...这种灵活性在团队协作的时候是种伤害,它让大家很容易写出来风格很不统一的代码,而且,在写入数据库和从数据库中读取数据的 normalization,离了 ORM 也会带来很多 ad-hoc 的代码。...这样,让工程师的效率和系统的效率达到一个平衡。在 node.js 下,这样的 ORM 不多,可用的似乎只有 waterline。...waterline 是 sails.js 开源的一个 ORM,支持多种 db 的混合使用,在各个数据库无法统一的操作接口上(比如 mongodb 的 upsert),你可以方便地将其生成的 model

1.4K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 14.04中使用NodeJS,SailsJS和DustJS构建SPA(单页应用程序)

    Sails内置了用于实时推送消息的Web套接字集成。它使用Waterline ORM作为默认ORM,使其与数据库无关。换句话说,它允许跨越一系列SQL以及非SQL数据库进行数据库操作。...这太棒了,因为 在客户端和服务器上编写和维护相同模板的代码较少 搜索引擎可索引,因为任何页面都可以直接从服务器获取 准备 本教程假设您已经创建了一个Ubuntu 14.04 x64 腾讯云CVM。...接下来,安装SailsJs: sudo npm -g install sails 注意:这将安装最新版本的Sails。您可以在他们的网站上阅读有关Sails.js的更多信息。...该dust.js视图引擎将以文件view/partials/home.dust的内容取代{> "partials/home"/}。 该模板将如何重用?...您可以检查assets/js/clickHandler.js中的代码,以便更好地理解代码。 名为xxx的Dust模板是在名为xxx.dust的文件中创作出来的。

    3K00

    【翻译】JS的回归: 设计一个包含CMS和CRM应用服务的node.js软件架构

    node.js对web应用架构发展的影响的研究却很少出现在科技文献中。...但是,尽管许多现代web应用程序都是基于node.js架构构建的,但只有少数的科研成果,特别是从科学的角度发表了各自的架构方法的论文少之又少。...满足所有这些要求的一个框架是Sails.js。Sails.js是一个基于Express.js的轻量级服务器端MVC框架。...它提供了一个名为“Waterline”的集成ORM模块,有几个不同的数据库接口,以及集成的“Blueprint API”,Sails.js为使用sails命令行创建的所有模型提供基本CRUD功能的路径,...前端身份验证由Vue-Auth处理,它在与Sails.js的Waterlock库的JWT同步中,另外提供基于角色的前端访问限制的功能,整个过程与Vue-Router组合。

    2.2K20

    情人节,孤单的你要让自己的github项目更加高大上

    之后点击红色框中的按钮,变成绿色之后,点击右边的设置按钮,就可以进入对应项目的CI页面: ? 配置package.json文件的scripts字段,添加测试的脚本命令: "test": "....配置解释: 文件mocha.opts文件的作用相当于是将命令的参数直接放到文件中,里面的参数含义是: 1.1. -R,也就是--reporter参数,用来指定测试报告的格式,默认是spec格式。...同一个describe下的执行顺序为before, beforeEach, afterEach, after 当一个it有多个before的时候,执行顺序从最外围的describe的before开始,其余同理...做法和travis CI一样,使用你的github账号登录,然后指定你要报告的项目的,这些就不再细说了,唯一一个重要的地方就是获取该项目的token: 登录之后见到这个页面: ?...在package.json文件的scripts字段添加下面这行命令:"cover": ".

    1.1K30

    不仅仅是复制粘贴 - 聊聊前端脚手架

    如何理解“丰富但不繁琐”呢?举个例子,假设构建功能支持自动生成css sprites,配置项有两个: 是否启用css sprites; 指定散列icon目录。...其中两个是开源项目,大家可以在Github上获取对应的源码。 2.1 sails - Node.js fullstack框架 sails是一个Node.js全栈框架,服务端使用MVC架构。...sails框架中的Adapter可以简单理解为简化model操作API的映射适配器。 大家注意最后一种类型:generator。sails在默认的脚手架基础上,开放了自定义脚手架模板的API。...后续的博文会详细介绍如何使用yeoman提供的Node.js API将其集成到工程化框架中。 3. 总结 虽然前端脚手架没有固定形态,但是有必须具备的要素。...从功能实现的角度,要考虑与业务的高度匹配;从底层框架的角度,要具备高度的可扩展性和执行环境多样性支持。 这可能是目前针对前端脚手架理念说的废话最多的一篇文章了,哈哈。

    1.3K60

    性能测试:一种计算 TP90、TP95 和 TP99 等水位线的方法

    .., 98, 99, 100 如上所示,这是一个从 1 至 100 的数列,如果我们想计算其 TP99 的值,其方法为用数列中数值的总个数乘以 99%,即100 * 99% = 99,显然在这个数列中有两个数值满足这个...计算方法 如果我们要计算 TP90、TP95 或者 TP99 等水位线的值,其前提就是需要我们将所有的待计算值保存起来。那么我们应该用什么数据结构来存储这一系列的值呢?数组?或者列表?...,然后: 计算 TP99 的水位线,假设sum * 99% = waterline99 从countContainer[0]开始,从前往后累加数组的值(或者从countContainer[2399]开始...,从后往前累加数组的值) 当countContainer[0] + countContainer[1] + ... + countContainer[target] >= waterline99的时候,...,调用accumulate方法;获取结果的时候,调用getResult方法。

    2.2K10

    2021 年 Node.js 开发人员学习路线图

    简而言之,基本的 Web 通信主要包括六种请求方法: GET: 获取资源的表示; POST: 创建新资源; PUT: 更新资源; PATCH: 局部修改资源; DELETE: 删除 URL 指定的资源...OPTIONS: 请求指定 URL/ 服务器所支持的通信。...集合包含一系列文档和函数,对标关系数据库中的表。 Redis:可用于数据库、缓存和消息代理(Message Broker)。...Redis 使用字符串、哈希、列表、集合、位图、hyperloglog 和时空索引等数据结构,以键值形式存储数据。下面举例说明: 假设应用必须处理授权用户的不同操作。...每次验证用户身份,都必须获取应用中访问权限控制模块的授权。实现此类安全机制的方案很多。例如,标准的 JOSE(JavaScript 对象签名和加密)框架可确保应用数据的安全性。

    2.5K20

    2021年Node.js开发人员学习路线图

    简而言之,基本的 Web 通信主要包括六种请求方法: GET: 获取资源的表示; POST: 创建新资源; PUT: 更新资源; PATCH: 局部修改资源; DELETE: 删除 URL 指定的资源...OPTIONS: 请求指定 URL/ 服务器所支持的通信。...集合包含一系列文档和函数,对标关系数据库中的表。 Redis:可用于数据库、缓存和消息代理(Message Broker)。...Redis 使用字符串、哈希、列表、集合、位图、hyperloglog 和时空索引等数据结构,以键值形式存储数据。下面举例说明: 假设应用必须处理授权用户的不同操作。...每次验证用户身份,都必须获取应用中访问权限控制模块的授权。实现此类安全机制的方案很多。例如,标准的 JOSE(JavaScript 对象签名和加密)框架可确保应用数据的安全性。

    2.6K20

    一斤代码深入理解系列(三):微信小程序和服务器通信

    首先我们安装sails的命令行工具,在你的命令行工具输入: npm install -g sails 安装完成后,建立一个新的项目目录,比如叫rest-server,然后进入该目录,执行以下命令: sails...routes.js 好,一个非常简单的,可以用GET方式访问的REST API就完成了,我们来把这个服务器运行起来,在rest-server目录下,运行命令: sails lift 成功启动后,就可以在...我们可以直接在浏览器中输入网址测试一下我们写的API: ? 在网页中测试API 看上去我们的REST API已经在工作了。那好,我们就在小程序中,试着去调用这个REST API: ?...小程序调用逻辑 如果我们成功获取到这个API返回的数组数据,我们就在小程序界面里将它们显示出来: ? 小程序模板 这个是实际的运行效果: ?...小程序的WebSocket API 在下一篇的文章里,我将继续讲解如何建立一个基于node.js的WebSocket服务器,并在小程序中使用它。

    1.6K80

    基于HAR包的流量录制回放

    HAR(HTTP Archive format),是一种JSON格式的存档格式文件,通用扩展名为 .har。...HAR包是JSON格式的,打开后,重点关注entries里面的request和response,包含了请求和响应信息。 流量录制 怎么获取HAR包呢?...同时进行JSON字段对比和文本对比,分别生成字段对比.txt和文本对比.html。...原理解析 源码:https://github.com/dongfanger/tep.git 一、转换 通过haralyzer库解析HAR包,获取到request和response,再拼装成pytest用例...实现文件:tep/libraries/Diff.py 1、JSON字段对比,每个请求对比结果放入列表中,输出到TXT文本 2、文本对比,从数据库取出expect和actual并格式化,所有响应text拼接到一个字符串进行对比

    31040

    Windows 系统中 CMD 工具常用命令

    ,hash 特别适用于存储对象 命令 解释 类型 HSET key value 将哈希表 key 中的字段 field 的值设为 value 添加、修改 HGET key 获取存储在哈希表 key 中指定字段...field的值 value 查询 HDEL key 删除存储在哈希表 key 中指定字段field的值 value 删除 HKEYS key 获取哈希表 key 中所有字段 查询 HGETALL key...获取哈希表 key 中所有字段和值 查询 列表 list 数据类型 Redis 的列表是简单的字符串列表,按照插入顺序排序 命令 解释 类型 LPUSH key value2 将一个或多个值value1...插入到列表 key 头部 添加 LRANGE key stop 获取列表 key 指定范围内 start 的元素 查询 RPOP key 移除并获取列表 key 最后一个元素 查询、删除 LLEN key...ZRANGE key stop 通过索引区间返回有序集合 key 中指定区间内的成员 查询 ZINCRBY key member 有序集合 key 中对指定成员 member 的分数 score 加上增量

    91020

    【译】73个超棒且可提高生产力的 NPM 包

    在这里,我整理了一些我最喜欢的 NPM 包的列表。我也将它们分类,因此信息更加结构化,更易于浏览。 当然,你不必安装和学习所有这些工具。在大多数情况下,从每个类别中挑选一个就足够了。...9.Sails[27] Sails 是最流行的 Node.js MVC 框架,支持现代应用程序的需求:具有可扩展的,面向服务结构的数据驱动 API。...这个项目从 2010 年就开始了,现在它是大多数 Node.js 用户默认使用的解决方案。 ?...你可以传递选项对象从而决定其产生的颜色类型。 73.Pluralize[97] 该模块使用预先定义的规则列表,按顺序应用这些规则给指定单词单数或复数。...往期优秀文章推荐 【webpack 性能优化】编译速度从 50S 到 7S[99] 一个合格的中级前端工程师应该掌握的 20 个 Vue 技巧[100] 【Vue进阶】——如何实现组件属性透传?

    5.9K30

    2021 年最值得使用的 Node.js 框架

    它有一个庞大的生态系统以提供开源库。 它可以用于更快地开发企业级可扩展的应用程序。 它基于最常用的编程语言 —— JavaScript。 市场对 Node.js 的反应如何? ?...在应用程序中添加“实时”能力。 支持自动重新连接 出色的速度和可靠性 即时通讯和聊天 「什么时候使用 Socket.io:」 Socket.io 是最好的基于事件的实时双向通信工具之一。...然而,如果你是一个 Laravel 开发者或任何其他移动应用框架开发者,你仍然可以给 Adonis.js 一个机会,甚至从 PHP 迁移到 Node.js 也可以尝试一下 Adonis.js。...「Sails.js 可以被用于:」 构建企业级 Node.js 应用 构建前端应用 构建处理 HTTP 请求的后端应用 「Sails.js 主要特性:」 支持自动生成 REST APIs 具有简单的 WebSocket...API 和实时应用的开发者都应该在他们的下一个项目中使用 Sails.js。

    6.5K30

    分享 73 个让你事半功倍的 NPM 包

    在这里,我整理了一些我最喜欢的 NPM 包的列表。我还对它们进行了分类,因此信息更加结构化并且更易于浏览。 当然,我们不必全部安装和学习它们。在大多数情况下,从每个类别中挑选一个两个就足够了。...你可以用它们中的任何一个来创造奇迹,黄金法则是提前学习现代 JS(ES6 及更高版本)。...9、Sails 地址:https://www.npmjs.com/package/sails Sails 是 Node.js 最流行的 MVC 框架,支持现代应用程序的要求:具有可扩展、面向服务架构的数据驱动...25、Dotenv 地址:https://www.npmjs.com/package/dotenv 它一个零依赖模块,将环境变量从 .env 文件加载到 process.env 中。...使用类似的 API - 如果您使用过 MomentJS,那肯定已经知道如何使用大部分 DayJS。

    5.4K20

    每日前端夜话(0x04):2018年JavaScript状态调查(中)

    结论 在过去的美好时光里,事情总是很简单。 数据存储在数据库中,服务器可以在其中获取数据,将其放入模板中,然后将整个数据发送到客户端。 但事情并不那么简单。...今天,程序需要知道自己如何获取数据以呈现在模板和组件中。 这就产生了一系列的数据提取和数据管理工具。 毫无疑问,Redux是这些工具中使用最广泛的工具,其82%的满意率证明了它的成熟度。...但整个领域很快就会受到GraphQL冲击波的影响。 GraphQL用户在两年内从5%上升到20%,他们选择的客户端似乎是Apollo。...GitHub 20k stars Node.js的实时MVC框架 Sails 随时间的流行度 ? Sails 最受喜欢的方面 ? Sails 最不受欢迎的方面 ?...它已经存在了很长一段时间,拥有最大的生态系统,大多数的Node.js开发者都熟悉它。 Jest在使用方面紧随其后,但其满意度略高:96%对82%。96%是今年整个调查中第高的满意度。

    1.6K20

    关于Redis的入门 2:Redis的基本操作

    关于Redis的入门 2:Redis的基本操作在上一篇文章中,我们学习了如何安装并配置Redis。...:1000 name # 获取"1000"用户的"name"字段获取所有哈希字段和值: 使用HGETALL命令获取哈希中的所有字段及其值: HGETALL user:1000删除哈希字段: 使用...HDEL命令删除哈希中的某个字段: HDEL user:1000 age1.3 列表(List)列表是一个有序的字符串集合,支持从两端进行操作。...插入元素: 使用LPUSH命令从左侧插入元素,使用RPUSH命令从右侧插入元素: LPUSH mylist "apple" RPUSH mylist "banana"获取列表元素: 使用LRANGE...(按分数排序): ZRANGE leaderboard 0 -1 # 获取按分数排序的所有元素获取指定范围的元素: 使用ZRANGEBYSCORE命令可以根据分数范围获取有序集合中的元素: ZRANGEBYSCORE

    9310

    有奖征集:云开发CloudBase的101种玩法

    在本次征文活动中,开发者可以 Show 出自己的用法,向开发者征集 Web 云开发的使用教程,通过这些教程,让更多的开发者可以享受到云计算带来的畅快感!...征文内容 基于云接入开发 Koa 应用 基于云接入开发 Express 应用 基于云接入开发 Next.js 应用 基于云接入开发 Sails.js 应用 基于云接入开发 Fastify 应用 基于云接入开发...云开发数据库如何查询当天数据 云开发数据库如何实现随机返回数据 云开发数据库如何实现队列 云开发数据库如何实现栈 其他和 Web 云开发相关的内容 征文形式 文件格式:征文需要以 markdown 格式提交...收稿地址:征文稿件需要发送至邮箱 cloudbase@tencent.com 邮件标题: 征文稿件需要以 [Web 云开发征稿活动] 开头 邮件需要包含信息: 邮件中需要包含你的腾讯云账号 ID 及个人昵称...回复时效 云开发将会在收到稿件一周内回复邮件,确认是否会采用你的投稿。 点击阅读原文,获取Web云开发文档~

    3.4K10
    领券