使用“sails-mongo”:“^ 0.10.0-rc2”,“sails”:“~0.10.0-rc4”我在sails lift
上收到以下错误。
verbose: Loading adapter ( sails-mongo ) for algorithm from `node_modules` directory...
Failed to load c++ bson extension, using pure JS version
verbose: Starting ORM...
error: A hook (`orm`) failed to load!
error: MongoError: auth fails
at Object.toError (/home/default/Projects/machine_learning_data_sets/machine-learning- engine/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/utils.js:110:11)
at /home/default/Projects/machine_learning_data_sets/machine-learning- engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/auth/mongodb_cr.js:39:33
at /home/default/Projects/machine_learning_data_sets/machine-learning-engine/node_modules/sails-mongo/node_modules/mongodb/lib/mongodb/db.js:1806:9
at Server.Base._callHandler (/home/default/Projects/machine_learning_data_sets/machine- learning-engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/connection/base.js:442:41)
at /home/default/Projects/machine_learning_data_sets/machine-learning- engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/connection/server.js:485:18
at MongoReply.parseBody (/home/default/Projects/machine_learning_data_sets/machine- learning-engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
at null.<anonymous> (/home/default/Projects/machine_learning_data_sets/machine-learning- engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/connection/server.js:443:20)
at EventEmitter.emit (events.js:95:17)
at null.<anonymous> (/home/default/Projects/machine_learning_data_sets/machine-learning- engine/node_modules/sails- mongo/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:191:13)
at EventEmitter.emit (events.js:98:17)
verbose: Lowering sails...
verbose: Sent kill signal to child process (12033)...
verbose: Shutting down socket server...
verbose: Shutting down HTTP server...
这是在mongo控制台上可以访问的本地mongodb。
我的连接是由配置的
mongo: {
adapter : 'sails-mongo',
host : 'localhost',
port : 27017,
user : '',
password : '',
database : 'mle'
},
当我忘记更新匹配的sails-mongo包时,我遇到了各种风帆释放候选人的问题。你可能会更新到最新的帆0.10.5和sails-mongo 0.10.4。这些一起工作。
我有同样的问题,我无法连接到导入的数据库,即使我尝试创建了许多不同的用户,具有不同的角色。
所以我运行db.system.users.find()
,我注意到一个用户,我还没有创建它。它是这样的:
{ "_id" : ObjectId("546699985feb7553f2e4dc32"), "user" : "newuser", "pwd" : "aaacf6ead2f12cbeb1a155b3021a3cda", "roles" : [ "userAdminAnyDatabase" ] }
所以我去了connections.js文件,并询问旧程序员该用户的密码是什么,并更新了用户名和密码。
然后运行sails lift
,幸运的是它有效!
您的bson扩展程序可能会遇到麻烦,但未加载。
你的第一个错误:
无法使用纯JS版本加载c ++ bson扩展
倍数原点可能:bson或node-gyp卸载或数据库不存在。
解决依赖关系提供的错误(每次使用解决方案时请检查,如果任何一个成功,请停止阅读我):
应用程序根目录中的第一个解决方案:
npm install
如果你在OSX上它不能工作第二个解决方案:
xcode-select --install
rm -rf node_modules // OR npm update
npm cache clean // OR npm update
npm install // OR npm update
在Ubuntu上的第二个解决方案:
sudo apt-get install gcc make build-essential
rm -rf node_modules // OR npm update
npm cache clean // OR npm update
npm install // OR npm update
第三种解决方案,如果您认为json不依赖于依赖项:
npm install bson
也许这个可以拯救你,如果其他不起作用:
npm install -g node-gyp
如果它不起作用:
git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
node-gyp rebuild
对不起,这个wtf答案,但它可以帮助你或其他人。
最好的祝福
mongo:{adapter:'sails-mongo',host:'localhost',port:27017,user:'',user: 'username', //optional
password:'',password: 'password', //optional
database:'mle'},
用户名和密码是可选的,所以不需要给予,只需评论并运行它。这对我来说是有用的!
在我的情况下,我正在使用url连接mongodb,如下所示
adapter: 'sails-mongo',
url: 'mongodb://<USERNAME>:<PASSWORD>@<HOST>/<DATABASE>'