【问题标题】:how to create a tagging system with nodejs for website?如何使用 nodejs 为网站创建标记系统?
【发布时间】:2019-12-18 19:04:50
【问题描述】:

我正在使用 Node js 创建一个 CMS 博客,但我未能为帖子创建一个标记系统,我希望这个标记系统连接到 MongoDB,这样我就可以对每个标签进行 CRUD 操作并搜索帖子根据他们的标签。

我为前端创建了这些代码:

//enter something in textbox and press enter....
var tags = [];
$(document).ready(function () {

    $('body').on('click', 'span.cross', function () {
        var removedItem = $(this).parent().contents(':not(span)').text();
        $(this).parent().remove();
        tags = $.grep(tags, function (value) {
            return value != removedItem;
        });
    });

    $("#textBox").keypress(function (e) {
        if (e.which === 13) {
            $(".target").append("<a href='#' class='tag' >" + this.value + '<span class="cross">X</span>' + "</a>");

            tags.push(this.value);
            this.value = "";
        }
    });
});

演示:http://jsfiddle.net/IrvinDominin/pDFnG/

我的问题从这里开始,我不知道帖子标签的性质,所以我不能为此编写任何代码,你建议我做什么?

【问题讨论】:

  • 正如您在对我的回答的评论中提到的,如果 SEO 是问题的一部分,您应该将其添加到您的问题中,这样答案才会更相关。

标签: javascript node.js mongodb express tagging


【解决方案1】:

最简单的解决方案是将标签元素作为数组保存到每个帖子文档中,并简单地在其中存储字符串列表。 然后用户可以指定他们想要的标签,代码不需要知道它们是什么,它只是存储它们。

然后,Mongo 可以为您提供所有标签的不同列表:

db.posts.distinct('tags')

并搜索包含特定标签或标签列表的任何帖子:

db.posts.find({tags: {$in: ['tag1', tag2', 'tag3']}})

这是我在那里写的 CLI 命令,如果你使用 Mongoose 或类似的,它们会略有不同。

这有帮助吗?

【讨论】:

  • db.posts.distinct('tags')这个操作是超级消耗内存的操作。有大量数据,它会失败。
  • Ok.but,搜索引擎如何看到标签,增加seo?
  • 标签将作为页面内容的一部分传回,与抓取的其余内容相同。如何做到最好取决于 SEO 的当前状态(我远非该领域的专家)。希望选择的标签能真正与内容相关联,并在标题中被提及,并在正文中多次提及。
  • @Steve 我应该如何将数据保留为页面内容的一部分?作为标记或 JavaScript 代码或...?
  • 你能给我介绍一些参考资料或文件吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
相关资源
最近更新 更多