首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cloud9流星

cloud9流星
EN

Stack Overflow用户
提问于 2014-03-21 14:16:45
回答 4查看 3.2K关注 0票数 5

当试图在cloud9中运行流星时,我会遇到以下错误之一:

运行旧的来自cloud9的修改版本,我得到了一个错误:

代码语言:javascript
复制
No dependency info in bundle. Filesystem monitoring disabled.
=> Errors prevented startup:
Exception while bundling application:
Error: Package not found: standard-app-packages
    at self.api.use (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/tools/bundler.js:113:17)
    at Array.forEach (native)
    at Function._.each._.forEach (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
    at Object.self.api.use (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/tools/bundler.js:110:9)

当我尝试运行最新版本时,我从cloud9得到一个错误:

代码语言:javascript
复制
Cloud9  Error: you may be using the wrong PORT & HOST for your server app
        Node: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts. See also https://c9.io/site/blog/2013/05/can-i-use-cloud9-to-do-x/

在这两种情况下,我都克隆了相应的GitHub存储库,并运行export BIND_IP=$IPexport PORT=20000 (正如在几篇文章中描述的那样)。我也放弃了使用默认MongoDB服务器的希望,转而将MONGO_URL导出到托管在https://www.mongohq.com/上的免费数据库。

我还尝试将云9流星版本的拉请求合并到主服务器,但这些文件甚至已经不存在了。我能找到的其他一切都是关于Meteor版本0.6.5和0.5的

试图修改最新的Meteor版本,我查找了httpServer.listen调用,但我在meteor/packages/webapp/webapp_server.js中只找到了一个,而且似乎在到达代码的那一部分之前就抛出了cloud9错误(如果已经到达)。因此必须有另一段代码绑定到错误的地址或端口。

我使用的插件是:

代码语言:javascript
复制
standard-app-packages
insecure
preserve-inputs
underscore
backbone
jquery
accounts-ui
accounts-base
accounts-password
accounts-facebook
accounts-google
coffeescript

更新:

经过几个小时的寻找解决方案,我得到了更多。问题出在流星/工具/运行-proxy.js

在第94行中,您可以看到:这里的self.server.listen(self.listenPort, function () {是服务器应该绑定到的相应IP地址。现在meteor曾经使用环境变量BIND_IP,我们可以在这里再次介绍它,但是这将在cloud9上产生不必要的额外更改,因为它们导出服务应该在IP变量中绑定到的当前IP地址。因此,我将所讨论的行改为:self.server.listen(self.listenPort, process.env.IP, function () {

我还另外修改了流星/工具/Run-all.js,因为我不确定是否使用了正确的端口参数。在第24行,我与var listenPort = options.port;交换了var listenPort = process.env.PORT;

虽然我现在终于可以启动应用程序,但它仍然没有运行,我得到了以下输出:

代码语言:javascript
复制
=> Running Meteor from a checkout -- overrides project version (0.7.2)
[[[[[ ~/<PROJECT_ID>/<PROJECT_NAME> ]]]]]

=> Started proxy.
W20140321-22:31:42.591(-4)? (STDERR) 
W20140321-22:31:43.036(-4)? (STDERR) events.js:72
W20140321-22:31:43.037(-4)? (STDERR)         throw er; // Unhandled 'error' event
W20140321-22:31:43.037(-4)? (STDERR)               ^


 Cloud9  Error: you may be using the wrong PORT & HOST for your server app
         Node: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts. See also https://c9.io/site/blog/2013/05/can-i-use-cloud9-to-do-x/
W20140321-22:31:43.108(-4)? (STDERR) Error: listen EACCES
W20140321-22:31:43.109(-4)? (STDERR)     at errnoException (net.js:901:11)
W20140321-22:31:43.109(-4)? (STDERR)     at Server._listen2 (net.js:1020:19)
W20140321-22:31:43.111(-4)? (STDERR)     at listen (net.js:1061:10)
W20140321-22:31:43.111(-4)? (STDERR)     at net.js:1143:9
W20140321-22:31:43.112(-4)? (STDERR)     at dns.js:72:18
W20140321-22:31:43.112(-4)? (STDERR)     at process._tickCallback (node.js:415:13)
=> Exited with code: 8

然而,流星并没有崩溃,而且异常不断地出现。这就是为什么我第一次想到,异常是由于MongoDB上的身份验证错误,因为MongoDB的错误代码8也是身份验证错误,但是当我在MongoHQ托管的数据库上使用无效的用户名+密码时,我会得到这样的结果:

代码语言:javascript
复制
[...]
=> Started proxy.
W20140321-22:54:17.282(-4)? (STDERR) 
W20140321-22:54:18.700(-4)? (STDERR) /var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/mongo_client.js:400
W20140321-22:54:18.777(-4)? (STDERR)               throw err
W20140321-22:54:18.778(-4)? (STDERR)                     ^
W20140321-22:54:18.778(-4)? (STDERR) MongoError: auth fails
W20140321-22:54:18.778(-4)? (STDERR)     at Object.toError (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/utils.js:110:11)
W20140321-22:54:18.779(-4)? (STDERR)     at /var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/auth/mongodb_cr.js:34:33
W20140321-22:54:18.779(-4)? (STDERR)     at /var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/db.js:1670:9
W20140321-22:54:18.779(-4)? (STDERR)     at Server.Base._callHandler (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/connection/base.js:382:41)
W20140321-22:54:18.780(-4)? (STDERR)     at /var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/connection/server.js:472:18
W20140321-22:54:18.780(-4)? (STDERR)     at MongoReply.parseBody (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
W20140321-22:54:18.780(-4)? (STDERR)     at null.<anonymous> (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/connection/server.js:430:20)
W20140321-22:54:18.781(-4)? (STDERR)     at EventEmitter.emit (events.js:95:17)
W20140321-22:54:18.781(-4)? (STDERR)     at null.<anonymous> (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/packages/mongo-livedata/.build/npm/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:191:13)
W20140321-22:54:18.782(-4)? (STDERR)     at EventEmitter.emit (events.js:98:17)
=> Exited with code: 8

在第149行的driver.js中引发此错误:

代码语言:javascript
复制
147:      MongoDB.connect(url, mongoOptions, function(err, db) {
148:        if (err)
149:          throw err;
150:        self.db = db;

这也是可以的,但是当我的凭据正确时,我找不到其他错误的来源。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-28 03:37:04

刚开始我遇到了类似的问题,但是最新版本的Meteor (0.9.0)至少让这个问题变得简单了。

代码语言:javascript
复制
meteor run --port=$IP:$PORT

似乎起了作用(至少到目前为止)

我是医生

代码语言:javascript
复制
meteor help run

hth

安迪

票数 9
EN

Stack Overflow用户

发布于 2014-03-22 11:32:11

好的,实际上问题的第一部分是正确的答案,如果我没有这样做的话:

BIND_IPserver.js中使用,但在流星/工具/运行-proxy.js中不使用。然而,两者都需要绑定到cloud9 9的“IP”变量。

因此,要解决这个问题,只需更新代理,就像我一样,使用正确的IP地址:self.server.listen(self.listenPort, process.env.IP, function () {

只需在你的.bashrc export BIND_IP=$IP中写

现在一切都很顺利(前提是在cloud9之外使用mongodb )

我在博客中总结了必要的步骤:http://peter.grman.at/how-to-run-meteor-in-cloud9/

票数 1
EN

Stack Overflow用户

发布于 2017-01-13 02:43:37

流星在c9.io很不错,我在c9.io和metor一起工作。跟着台阶走。

  1. 选择车间作为nodejs。
  2. 在终端中编写命令"curl https://install.meteor.com/ \ sh“
  3. 在终端中写$ meteor创建newapp(您的主应用程序文件夹名)
  4. 在终端写cd新应用程序
  5. 在终端中编写$ meteor -p 8080 (注意-p或- port,如果您使用端口为300,在c9.io中不能正常工作)。所以您应该使用端口作为8080、8081或8082)
  6. 几秒钟后,您就可以在: localhost:8080上运行一个链接应用程序。
  7. 单击该链接并打开它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22561328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档