ThinkJS鏈接MongoDB

  

 1 'use strict';
 2 /**
 3  * db config
 4  * @type {Object}
 5  */
 6 module.exports = {
 7     type: "mongo",
 8     log_sql: true,
 9     log_connect: true,
10     adapter: {
11         mysql: {
12          host: '127.0.0.1',
13          port: '',
14          database: '',
15          user: '',
16          password: '',
17          prefix: 'think_',
18          encoding: 'utf8'
19          },
20         mongo: {
21             prefix: 'think_',
22             database: 'larry', //這裏要配置數據庫名稱 23             encoding: 'utf8',
24             nums_per_page: 10,
25             log_sql: true,
26             log_connect: true,
27             cache: {
28                 on: true,
29                 type: '',
30                 timeout: 3600
31             },
32             options: {
33                 //authSource: 'admin'
34             }
35         }
36     }
37 };

心血來潮想要試試thinkJS操做mongoDB,去官方文檔看了看,默認是隻給了mysql的配置,源代碼也是沒有配置mongo的,只有一個官方案例,按照其db.js的配置複製了到我本身的代碼,仍是不成功。html

最後發現其實參考mysql的配置就能夠了(不要怪我傻.....新手....)。mysql

 按照官方文檔,我進行以下幾步:git

 thinkjs model user --mongo

 

 生成了user.js後寫了如下幾行代碼github

//user.js
'use strict'; /** * model * @type {Class} */ module.exports = think.model('mongo', { addUser: function () { var ret = this.add({ name: Date() }); console.log(this.getModelName(),this.db()); return ret; } });

 

//indexAction.js
indexAction: function (self) { console.log(this.model('user').addUser()); return self.display(); }

 

 

最後發現log出來的db信息,默認是鏈接admin數據庫的。。。。而後嘗試將mongo的配置項加入database字段,修改爲本身的,而後竟然成功了~。真是糟心啊,弄了一個下午。。sql

參考鏈接數據庫

https://thinkjs.org/zh-cn/doc/2.1/model_config.html

相關文章
相關標籤/搜索