无法通过meteor应用程序连接远程Mongo数据库

时间:2015-02-25 06:17:03

标签: mongodb meteor

我正在尝试使用js文件中的以下代码从我的机器上的meteor app连接远程数据库:

if(Meteor.isServer){
    Meteor.startup(function () {
       var myDatabase = new MongoInternals.RemoteCollectionDriver("http://172.22.77.134:27017");
       MyCollection = new Mongo.Collection("euro2012", { _driver: myDatabase });
     });
   }

抛出以下错误:

  

错误:EACCES,取消关联   '/home/garima/my_cool_app/.meteor/local/build-garbage-e7yeel/README'       在Object.Future.wait(/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux。 x86_64的/ dev_bundle / LIB / node_modules /纤维/ future.js:326:15)       在Object.wrapper [as unlink](/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os。 linux.x86_64 /工具/ files.js:1124:24)       at Object.files.rm_recursive(/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux。 x86_64的/工具/ files.js:262:13)       在/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/tools/files。 JS:258:15       at Array.forEach(native)       在函数。 .each。 .forEach(/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova /meteor-tool-os.linux.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)       at Object.files.rm_recursive(/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux。 x86_64的/工具/ files.js:256:9)       at Object.files.renameDirAlmostAtomically(/home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux。 x86_64的/工具/ files.js:690:11)

使用sudo后,我收到以下错误:

  

(STDERR)W20150225-14:20:26.847(5.5)? (STDERR)   /home/garima/.meteor/packages/meteor-tool/.1.0.40.1ef5dzv++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/dev_bundle/server-lib /node_modules/fibers/future.js:173   W20150225-14:20:26.847(5.5)? (STDERR)throw(ex);   W20150225-14:20:26.848(5.5)? (STDERR)^   W20150225-14:20:26.891(5.5)? (STDERR)错误:URL必须采用格式   mongodb:// user:pass @ host:port / dbname W20150225-14:20:26.891(5.5)?   (STDERR)错误()W20150225-14:20:26.891(5.5)?   exports.parse上的(STDERR)   (/home/garima/.meteor/packages/mongo/.1.0.11.pnwx20++os+web.browser+web.cordova/npm/node_modules/mongodb/lib/mongodb/connection/url_parser.js:15:11 )   W20150225-14:20:26.891(5.5)? (STDERR)在   Function.MongoClient.connect   (/home/garima/.meteor/packages/mongo/.1.0.11.pnwx20++os+web.browser+web.cordova/npm/node_modules/mongodb/lib/mongodb/mongo_client.js:164:16)   W20150225-14:20:26.891(5.5)? (STDERR)在Function.Db.connect上   (/home/garima/.meteor/packages/mongo/.1.0.11.pnwx20++os+web.browser+web.cordova/npm/node_modules/mongodb/lib/mongodb/db.js:2035:23)   W20150225-14:20:26.891(5.5)? (STDERR)新的MongoConnection   (packages / mongo / mongo_driver.js:151:1)W20150225-14:20:26.892(5.5)?   (STDERR)新的MongoInternals.RemoteCollectionDriver   (包/蒙戈/ remote_collection_driver.js:4:1)   W20150225-14:20:26.892(5.5)? (STDERR)在app / my_cool_app.js:26:25   W20150225-14:20:26.892(5.5)? (STDERR)在   /home/garima/my_cool_app/.meteor/local/build/programs/server/boot.js:212:5

1 个答案:

答案 0 :(得分:3)

您有多个问题。运行应用时权限不足导致停止运行应用的错误。也许你用sudo一次运行它?

要解决此问题,只需确保您拥有项目中所有文件的权限。

另一种是,当您定义http时,您正在使用new MongoInternals.RemoteCollectionDriver网址而不是mongo网址。 Mongo URI看起来像这样

  

的mongodb:// [用户名:密码@]主机1 [:端口1] [,主机2 [:端口2],... [,hostN [:端口n]]] [?/ [数据库] [选项]]

The full docs on the uri can be found here

使用此URI格式而不是http格式来解决此问题(与权限问题无关)。