如何在 Meteor 中进行简单的数据库查询
How to make a simple database query in Meteor
每当我对应用程序有新的想法时,我都会从Meteor开始。每次我最终使用其他东西时。我认为这归结为我不知道如何进行简单的数据库查询。
下面是一个假设的例子。我想制作一个应用程序,其中用户在框中键入内容,按下按钮,然后显示他们键入的任何内容的图像。它使用一些图像搜索 API。
<template name="image">
<input type="text" class="description"></input>
<button class="showImage"></button>
<img src="{{img}}"></img>
</template>
到目前为止似乎很简单。现在没有一种方法可以在不先将信息放入数据库中的情况下向客户端发送信息,这是我的理解。假设我们有一些函数 addToDB,它接受查询并将图像信息输入数据库。
Template.image.events({
'click .showImage': function() {
addToDB($('.description').val());
}
});
伟大!这还算不错。但是现在将数据发送回客户端...
//server.js
Meteor.publish("image", function(query) {
Images.find({q: query});
}
但是等等。我们不能只在客户端加载时订阅,因为我们还不知道查询。所以也许事件处理程序需要
Template.image.events({
'click .showImage': function() {
addToDB($('.description').val());
Deps.autorun(function() {
Meteor.subscribe("images", $('.description').val());
});
}
});
好的,让我们将其输入到模板中...
Template.image.img = function() {
return Images.findOne().imgsrc;
}
不,这会导致错误,因为首次加载模板时,我们尚未订阅图像。因此,我们可以像这样更新模板:
<template name="image">
<input type="text" class="description"></input>
<button class="showImage"></button>
{{#each info}}
<img src="{{info.img}}"></img>
{{/each}}
</template>
然后将模板填充功能更改为:
Template.image.info = function() {
return Images.find({}, {limit: 1});
}
瞧!
我花了比我愿意承认的时间更长,今天晚上磕磕绊绊地完成了这一切。如果它只是普通的旧节点,我可以使用一些简单的jQuery。
但是Meteor有一百万个惊人的功能,我真的很想利用。所以我希望有人能给我指路。在这个过程中,我犯了什么错误,最终结果是什么?在流星应用程序中完成此操作的最好,最干净,最简单的方法是什么?
这太复杂了,在一个使许多其他事情变得如此简单的框架内。那么我怎样才能进行一个简单的数据库查询呢?
考虑看看他们提供的流星示例。 所有示例都具有接受用户输入、管理集合以及向模板显示集合查询的功能。
您的大多数代码看起来都不错,但您同时提出多个问题,并且从一个难以回答的角度开始。 一些一般说明:
- 考虑使用会话来保存用户使用事件设置的变量。
- 通过将会话变量传递给 Deps.autorun 函数来订阅所需的数据
- 通过将会话变量传递给模板来显示所需的数据。
- 基本的JavaScript规则仍然适用 -
null.someThingIWant
是一个错误。 一个方便的模式是return something && something.someThingIWant;
上面代码中的一个问题是您的发布未返回查询结果。 我认为这是一个错字。
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 简单的javascript在Shopify中不起作用
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 使用javascript从数据库中添加表
- 有没有一种简单的方法可以通过javascript将MySQL文件导入SQLite数据库
- AngularJS中的简单数据库搜索引擎
- 如何在 Meteor 中进行简单的数据库查询
- 来自数据库数组的简单 Javascript 幻灯片
- 从数据库中选择父选项字段时填充子选项字段的简单方法)
- HTML、PHP、JavaScript——如何为数据库中的每个单独记录制作一个按钮?看起来很简单,但事实并非如此;不起作
- 用数据库中的数据填充高图表的最佳(简单)方法
- 没有数据库的简单搜索
- 简单的ajax调用数据库来验证电子邮件PHP编码器
- 使用javascript从parse.com数据库显示图像的简单方法
- 在nodejs中导入MySQL数据库进行集成测试的最简单方法
- 点击一个简单的HTML按钮,通过jQuery / Javascript写入数据库&PHP
- 将基本数据写回服务器数据库的最简单方法
- 简单的键/值数据库
- X 可编辑的简单数据库更新未更新