Node.js与Sails~Model和ORM的持久化
上一讲说了在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-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进行一些说明:
- safe - never auto-migrate my database(s). I will do it myself (by hand)[不自动合并数据,需要手动控制]
- alter - auto-migrate, but attempt to keep my existing data (experimental)[与老数据自动合并,当添加新字段后,数据表才会被删除,推荐使用]
- 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文件下载所需要的包包!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2014-10-15 Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了