博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js与Sails~Model和ORM的持久化
阅读量:6433 次
发布时间:2019-06-23

本文共 2826 字,大约阅读时间需要 9 分钟。

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

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

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

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

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

npm install sails-mongodbnpm 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文件下载所需要的包包!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
ETL (数据仓库技术)
查看>>
count(*)与count(1)、count('xxx')等在使用语法方面的区别
查看>>
每日踩坑 2018-11-26 MVC Razor ActionLink 生成的URL中多生成了一个参数 ?length=n
查看>>
linux 信号
查看>>
记一次简单的vue组件单元测试
查看>>
npm: 6.5.0-next.0 should be >= 3.0.0
查看>>
Golang定时器陷阱
查看>>
Node和Java性能对比(仅供参考)
查看>>
es6基础0x011:Set
查看>>
webpack-dev-server启动后,localhost:8080返回index.html的原理
查看>>
程序员练级攻略(2018):前端基础和底层原理
查看>>
WeakSet和WeakMap
查看>>
高程3总结#第19章E4X
查看>>
Git 撤销所有未提交(Commit)的内容
查看>>
互联网江湖,桌面客户端框架技术比武大会
查看>>
关于直播系统和短视频系统安卓手机屏幕适配的方向思路
查看>>
使用模拟实现的方式探究call 和 apply 的原理
查看>>
angular6.x中ngTemplateOutlet指令的使用
查看>>
JavaScript核心属性-数据类型
查看>>
阿里HBase的数据管道设施实践与演进
查看>>