ThinkJS连接MongoDB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的配置复制了到我自己的代码,还是不成功。
最后发现其实参考mysql的配置就可以了(不要怪我傻.....新手....)。
按照官方文档,我进行如下几步:
thinkjs model user --mongo
生成了user.js后写了以下几行代码
//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字段,修改成自己的,然后居然成功了~。真是糟心啊,弄了一个下午。。
参考连接
https://thinkjs.org/zh-cn/doc/2.1/model_config.html
以上是关于ThinkJS连接MongoDB的主要内容,如果未能解决你的问题,请参考以下文章