将流星部署到 Digital Ocean / modulus.io 时出现登录和模板错误

Login and template errors deploying meteor to Digital Ocean / modulus.io

如果这个问题问得不正确,我深表歉意,但实际上我无法查明问题所在。因此问题本身缺少代码。我正在为这个错误而苦苦挣扎,所以请放轻松....

我在本地开发一个 meteor 应用程序没有太多困难。在本地主机上似乎 运行 很好。但后来我决定部署它并 运行 解决了下面概述的一些问题。我已经使用 mup/DO 和 modulus.io 部署了应用程序 "successfully"(在两个实例中都使用 compose 托管数据库)并且整个过程都可以正常工作,但是...

  1. 您可以很好地注册,但是当您尝试登录时,按钮不起作用...再次按下并登录,但用户名和密码在 URL 中。 .. 这是怎么发生的?

  2. 登录后,您可以先创建供应商,然后为该供应商创建产品。唯一的问题是供应商被保存到数据库中并且他们在产品数量中但是他们在中间部分页面无处可见。

  3. 创建新供应商后,将无法再为现有供应商添加新产品。

我很困惑,不知道该放什么代码,所以我允许访问我的代码库 - 它在 github here and this is the modulus site here 上。赶快去注册吧,你可以自己看看。

当您开始尝试登录站点时,您很容易就能在控制台中看到错误,因此没有必要在此处发布它们。

非常非常感谢大家。

我已经检查了您的代码,我认为错误不是由于部署引起的。

这里有一些建议可以帮助您修复代码:

  1. 在您的 /client/helpers/config.js 文件中,您尝试配置 {{> loginButtons}}. That does not make any sense, since you do not have the accounts-ui 安装包的行为。
  2. /client/templates/includes/header.html 文件引用 pathForhomepage。此路线目前在您的 /lib/router.js.
  3. 中不可用
  4. 用户即使没有登录也可以访问 /loggedIn 路径。此外,如果 register 模板中的 submit form 事件,您总是将用户重定向到此路径发生。这意味着,他们只需单击提交按钮即可轻松绕过注册。
  5. 查看您的控制台日志。有很多模板助手异常。
  6. 很遗憾,我无法检查您描述的登录错误,因为我在调用提交事件时收到异常。我建议使用一种相当防御性的编程方法,你至少应该检查变量的值是否不是 undefined,如果是,那么你应该相应地处理这些情况。

例如,在您的 /client/templates/includes/login.js 文件中,您有以下代码:

var userId = Meteor.userId();
var supplier = Suppliers.findOne({userId: userId});
var supplierId = supplier._id;

如果 supplierundefined,这将引发异常。

总而言之,您应该重新考虑您的发布计划和部署,因为您的应用程序远未运行。此外,下次请尝试将您的问题分成几块,并提供一个清晰的问题陈述,因为如果没有它,您的问题将对其他读者没有用。