我正在尝试使用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
答案 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格式来解决此问题(与权限问题无关)。