如何解决Meteor.js和MongoDB,我在操作数据库时遇到问题
我对MongoDB和Meteor.js绝对是新手。我正在尝试按照教程进行操作,尽管我确实在再现老师的所作所为,但我还是被困住了。我正在尝试显示数据库entries
中的项目列表,但没有任何显示。我尝试了很多方法,并且console.log记录了很多,但是我从未设法使其正常工作。
这是我的文件:
1 / main.html
<body>
<h3 class="title">Welcome!</h3>
<div class="container list">
<ul class="collection">
{{#each entries}}
{{> list}}
{{/each}}
</ul>
</div>
</body>
<template name="list">
<li class="collection-item"> {{title}}
</li>
</template>
2 / main.js
import { event } from 'jquery';
import { Template } from 'meteor/templating';
import { Entries } from '../lib/collection.js';
import './main.html';
Template.body.helpers({
entries(){
return [Entries.find({})];
},});
3 / collection.js
import { Mongo } from 'meteor/mongo';
export const Entries = new Mongo.Collection('entries');
这是我在运行meteor mongo
之后以及在我键入命令时在命令行中创建的数据库:db.entries.find().pretty()
{
"_id" : ObjectId("5f69ef84eda325daca4b0d51"),"title" : "Hello","content" : "try hard"
}
{
"_id" : ObjectId("5f69f0db434cda7b7f21d193"),"createdAt" : ISODate("2020-09-22T12:40:59.924Z")
}
{
"_id" : ObjectId("5f69f1c8434cda7b7f21d194"),"createdAt" : ISODate("2020-09-22T12:44:56.230Z")
}
{ "_id" : ObjectId("5f69f2c3434cda7b7f21d195"),"name" : "Watercress" }
{
"_id" : ObjectId("5f69f6012a6382ef314d84cb"),"title" : "goodbye","createdAt" : ISODate("2020-09-22T13:02:57.511Z")
}
{
"_id" : ObjectId("5f69f6bf2a6382ef314d84cd"),"title" : "fresh","createdAt" : ISODate("2020-09-22T13:06:07.561Z")
}
如果您可以帮助,那就太好了!
解决方法
我知道,从教程开始非常令人沮丧,因为它不能按预期工作,并且希望以下技巧可以帮助您深入了解流星及其魔术的工作原理。
- 确保集合已在服务器和客户端上注册。对于您来说,这意味着确保文件
collection.js
在两种环境中都可以运行。您可以通过在文件中放入console.log()
来确认。如果您同时在终端和浏览器的控制台中看到输出,请继续。使用autopublish
软件包时,这一点尤其重要。 - 确保将数据发布到客户端。发生这种情况
2.1安装软件包autopublish
(查看文件.meteor/packages
。如果没有,可以使用meteor add autopublish
安装)或
2.2立即跳转以手动发布数据(https://www.meteor.com/tutorials/blaze/publish-and-subscribe)。
安装扩展Meteor DevTools for Chrome,打开开发人员工具栏,切换至选项卡Meteor
,然后切换至内部选项卡Minimongo
,以确认数据已到达浏览器。 - 现在,Blaze的工作是了解更改(数据将进入浏览器中的集合)并进行更新。
这是一篇关于Meteors publications & subscriptions的很好的文章。虽然年代久远,但对于理解这一概念来说是黄金。
如果您对自己的印象有疑问,需要来回交流,请加入the Meteor community on Slack。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。