我有两个收藏品
var mysql= require("mysql");
var bcrypt = require("bcryptjs");
var sql = mysql.createConnection({
host: "localhost",
user: "root",
password: "1234",
database: "dricm"
});
sql.connect(function (err) {
if(err){
console.log("error");
}else{
console.log("connected");
}
});
var User= {
}
User.createUser = function createUser(newUser) {
bcrypt.genSalt(10, function(err, salt){
bcrypt.hash(newUser.password,salt, function (err, hash) {
newUser.password = hash;
var query = sql.query("INSERT INTO USERS set ?", newUser, function (err, res) {
console.log(query);
if(err) {
console.log("error");
}
else{
console.log(res.insertId);
}
});
});
});
}
module.exports= User;
CategoryCollection在一个类别中保留帖子,在帖子对象中有作者,作为id。看看下面的图片,请注意 posts.author
usersWordpressCollection包含在 posts.author
下的categoryCollection中引用 id (见下图)的作者当我显示帖子时,它来自CategoryCollection = new Mongo.Collection("CategoryCollection");
usersWordpressCollection = new Mongo.Collection("usersWordpressCollection");
所以我可以得到帖子,链接等我也可以获得作者ID但是当谈到这个时,我想要返回,而不是id ,但参考的作者信息在categoryCollection
最新的HTML
usersWordpressCollection
最新js
<template name="latest">
<ul>
{{#each articles}}
<li class=" home-latest ">
<span class="label"> <a class="" href="/catsingle/CategorySingle/{{_id}}">{{name}}</a></span>
{{#each posts}}
<div class="card">
<div class="category-img">{{{image}}}</div>
<div class="card-divider">
{{title}}
</div>
<div class="card-section">
<p>
{{> authors}}
</p>
</div>
</div>
</li>
{{/each}}
</ul>
</template>
作者html
Template.latest.helpers({
articles: function () {
var id = FlowRouter.getParam('_id');
return CategoryCollection.find({}, {sort: {date_created: -1}, limit:1}).fetch();
}
});
作者js
<template name="authors">
{{#each authors}}
<p>
{{name}}
</p>
{{/each}}
</template>
如您所见,Template.authors.helpers({
authors: function () {
var id = this.author;
console.log(id);
var alias = usersWordpressCollection.findOne(id, {fields: {name: 1} });
return alias.name;
console.log(alias.name);
});
是this.author
categoryCollection
中的作者 id 。我试图在与作者匹配的posts.author
中找到 id ,然后我想显示 id 匹配的作者的usersWordpressCollection
。但我无法看到让它发挥作用,我怎么能实现这一点。
答案 0 :(得分:0)
由于每个帖子只有一位作者,您不需要迭代作者的光标,您只需要一个。所以你在哪里:
{{#each authors}}
<p>
{{name}}
</p>
{{/each}}
改为使用:
{{#with author}}
<p>
{{name}}
</p>
{{/with}}
现在,进入authors
模板的数据上下文将是post
对象(因为您位于{{#each posts}}
内。因此,您可以将author
帮助器构建为如下:
Template.authors.helpers({
author(){
return usersWordpressCollection.findOne({ id: parseInt(this.author) });
}
});
由于您已指出this.author
是一个字符串,但您的用户集合的id
是一个整数,因此您需要转换该类型 - 您可以直接在查询中执行此操作。