【问题标题】:Uncaught ReferenceError: Messages is not defined meteor chat tutorialUncaught ReferenceError: Messages is not defined 流星聊天教程
【发布时间】:2013-02-16 06:25:07
【问题描述】:

我正在关注this流星聊天教程,我已经完成了一半,老师完成了一段代码并在浏览器的控制台中检查它并说好“没有错误”但我得到了一个相同的错误观点。关于我为什么会收到此错误的任何帮助都会很棒。

文件.js

Message = new Meteor.Collection('messages');

if (Meteor.is_client){
  Template.messages.messages = function () {
    return Messages.find({}, { sort: {time: -1} });
  };
}

文件.html

<head>
  <title>tutorial</title>
</head>

<body>
 {{> entry}}

 {{> messages}}
</body>

<template name="entry">
    <p>
    <input type="text" id="name" placeholder="your name">
    <input type="text" id="messageBox" placeholder="your message"></p>
</template>

<template name="messages">
    {{#each messages}}
        {{> message}} <!--echo of message template-->
    {{/each}}
</template>

<template name="message">
    <p><strong>{{name}}:</strong>{{message}}</p>
</template>

错误

Uncaught ReferenceError: Messages is not defined

更新

执行以下消息 = return ... 给我下面的输出

Your app is crashing. Here's the latest log.


app/tutorial.js:5
     message = return Messages.find({}, { sort: {time: -1} });
               ^^^^^^
SyntaxError: Unexpected token return
    at /Users/anderskitson/Sites/tutorial/.meteor/local/build/server/server.js:113:21
    at Array.forEach (native)
    at Function._.each._.forEach (/usr/local/meteor/lib/node_modules/underscore/underscore.js:79:11)
    at run (/Users/anderskitson/Sites/tutorial/.meteor/local/build/server/server.js:99:7)
Exited with code: 1
Your application is crashing. Waiting for file change.

【问题讨论】:

  • Message = ... return Messages.find
  • @nneonneo 我添加了对使用您的代码时发生的情况的更新。
  • 呃,不,我是在指出你声明 Message 和返回 Message 之间的不匹配 s .find
  • @nneonneo 您能否将我的代码重构为答案并告诉我您的意思。我不太明白。
  • 我刚刚...请刷新页面?

标签: javascript meteor referenceerror


【解决方案1】:

这一行:

Message = new Meteor.Collection('messages');

声明一个名为Message 的变量。因此,稍后,您可以使用变量Message

这一行:

return Messages.find({}, { sort: {time: -1} });

使用变量Messages,未定义!仅定义了 Message。所以,写

return Message.find({}, { sort: {time: -1} });

改为。

【讨论】:

    【解决方案2】:

    之前需要检查 Meteor.isClient

    if (Meteor.isClient) {  
      alert(); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2019-01-22
      • 2019-12-31
      • 2020-05-24
      • 2020-05-10
      相关资源
      最近更新 更多