回到目录

上一讲说了在sails里定义model及相关参数的说明,这一讲主要说一下如何将你的Model持久化到文件,关系数据库和Nosql数据库里,在持久化这点上,sails是统一管理的,它可以在/config/model.js里设置全局的持久化方法,而且它还可以进行多种介质持久化的并存,如你想让mysql和mongodb并存,只要在指定的/model/实体.js类中,进行设置即可,如下面代码将actionjob这个表持久化到mongodb里

//actionJob.jsmodule.exports={connection:"someMongodbServer", //持久化到mongodb里
    attributes:{content: {type: 'string',size: 255},userId:{type:'integer'}}
};

对于数据的持久化主要分为以下几个步骤,下面一一讲解

1 安装缺失的驱动,默认来说mongodb和sqlserver都需要进行安装,npm install 命令

在命令提示窗口输入下面命令进行安装

npm install sails-mongodb
npm install sails-sqlserver

2 添加数据库连接信息/config/connection.js,下面以mongodb和sqlserver为例

someMongodbServer: {adapter: 'sails-mongo',host: '192.168.2.21',port: 27017,// user: 'username', // password: 'password', database: 'TestNodeJs' }, someSqlServer: { adapter: 'sails-sqlserver', host: '192.168.2.71', user: 'sa', password: 'zzl123', database: 'TestNodeJs' }

3 设置model所使用哪种数据库进行持久化/config/model.js

module.exports.models = {/****************************************************************************                                                                          ** Your app's default connection. i.e. the name of one of your app's        ** connections (see `config/connections.js`)                                **                                                                          ****************************************************************************///connection: 'localDiskDb',
connection: 'someSqlServer',
// connection: 'someMongodbServer',/****************************************************************************                                                                          ** How and whether Sails will attempt to automatically rebuild the          ** tables/collections/etc. in your schema.                                  **                                                                          ** See http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html  **                                                                          ****************************************************************************/migrate: 'alter'//自动合并,不清除原来的数据
};

下面对migrate进行一些说明:

  1. safe - never auto-migrate my database(s). I will do it myself (by hand)[不自动合并数据,需要手动控制]
  2. alter - auto-migrate, but attempt to keep my existing data (experimental)[与老数据自动合并,当添加新字段后,数据表才会被删除,推荐使用]
  3. drop - wipe/drop ALL my data and rebuild models every time I lift Sails[删除数据表,建立新表,插入新数据]

通过上面的设置之后,运行你的app.js,如果没有出现错误,说明你的数据就可以持久化了,呵呵!

小知识:

Mongodb它对自动创建数据库和数据表

Sqlserver它需要手动选建立数据库,数据表自动建立

注意:

你的项目在进行github之后,一般情况下node_modules文件夹不会被管理,即你下载的npm包包没有被管理,这时在异地从github上下载源码后,可以在命令行上输入npm install命令,自动让npm根据你的package.json文件下载所需要的包包!

回到目录

转载于:https://www.cnblogs.com/lori/p/4881826.html

Node.js与Sails~Model和ORM的持久化相关推荐

  1. Node.js与Sails~Model数据模型

    回到目录 对于Sails来说,它的Model与数据库对应,不过它并没有采用目前比较流行的poco贫血模型,而是采用了类似DDD的充血模型,即它的数据实体里即有数据库字段(属性)而且还有方法,而模型里的 ...

  2. Node.js与Sails~方法拦截器policies

    policies sails的方法拦截器类似于.net mvc里的Filter,即它可以作用在controller的action上,在服务器响应指定action之前,对这个action进行拦截,先执行 ...

  3. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  4. sequelize 增加数据库字段_sequelize 5.0中文文档连接数据源及数据类型 (一) - node.js语言最好用的orm...

    文章目录 前言 Node.js 社区中,sequelize 应该是最好用的 ORM 框架,它支持多种数据库,包括 PostgreSQL ,MySQL ,SQLite 和 MSSQL. 安装 npm i ...

  5. node.js + sequelize 操作 MySQL 数据库

    Node.js + Sequelize 操作 MySQL 数据库 一. Sequelize 简介 二. 基本操作 1. 连接数据库 2. 创建一张表 3. 对数据表操作 3.1 插入操作 3.2 读取 ...

  6. 通常,Node.js如何处理10,000个并发请求?

    本文翻译自:How, in general, does Node.js handle 10,000 concurrent requests? I understand that Node.js use ...

  7. 转 10 个最佳的 Node.js 的 MVC 框架

    10 个最佳的 Node.js 的 MVC 框架 oschina 发布于: 2014年02月24日 (33评) 分享到:  收藏 +322 Node.js 是一个基于Chrome JavaScript ...

  8. Node.js 入门到干活,10 个优质项目就够了!

    Node.js 在很多大公司都有不错的实践,比如:淘宝.天猫 Web 版,很多页面都是在 Node 服务器上渲染的.还有各种脚手架.前端打包发布工具.构建生态的小工具,也基本都是 Node.js 编写 ...

  9. 10 个最佳的 Node.js 的 MVC 框架

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞 I/O 模型变得轻量和高效, ...

最新文章

  1. elasticsearch解决控制台中文乱码问题
  2. python3 eval安全替代函数ast.literal_eval
  3. PL/SQL轻量版(四)——存储函数/存储过程与触发器
  4. Linuxmint 美化之路
  5. Linux终端显示工作路径
  6. 国产 14nm 迎曙光,进口荷兰光刻机顺利入厂!
  7. java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
  8. 类和对象编程(二):类访问修饰符
  9. 软件工程经济学课后答案
  10. Tortoiser三十集脱壳教程__ZC
  11. 关于纸张尺寸和照片尺寸
  12. Sass和Scss的区别
  13. android 获取视频的封面
  14. 我要砍价-自动砍价-思路
  15. 基于深度学习的物体识别系统
  16. 返回多字段并用数组分割方式展示
  17. PostgreSQL开源界的“活雷锋”
  18. 年终总结(我心飞翔向)
  19. CSS控制Table内外边框、颜色、大小示例
  20. Vue element 下拉框 可输入可选择(无bug)

热门文章

  1. AI:**消灭程序员需要一百年吗?
  2. 标签有关用法以及锚点定位;
  3. Git 常用命令速查表(图文+表格)【转】
  4. Microsoft Windows 7.0 build 7000 NAP测试--健康状态检测验证报告
  5. 在ubuntu14.04中安装搜狗输入法
  6. .NET Remoting开发系列:(三) Remoting服务发布方式
  7. URL中允许携带sessionid带来的安全隐患。
  8. xfce中鼠标的“反转卷轴方向“
  9. intellij出现Initial job has not accepted any resources;
  10. hexo的yelee主题使用自定义字体并用字蛛进行字体压缩的sed脚本