Node.js教程 Sails Model和ORM的持久化解析
沉沙 2018-07-26 来源 : 阅读 1246 评论 0

摘要:本篇Node.js教程探讨了Sails Model和ORM的持久化,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

本篇Node.js教程探讨了Sails Model和ORM的持久化,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。


上一讲说了在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 //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文件下载所需要的包包!

 

本文由职坐标整理并发布,了解更多内容,请关注职坐标WEB前端Node.js频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程