Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 准备NodeJS DB内容以便在Mustache中使用_Json_Node.js_Underscore.js - Fatal编程技术网

Json 准备NodeJS DB内容以便在Mustache中使用

Json 准备NodeJS DB内容以便在Mustache中使用,json,node.js,underscore.js,Json,Node.js,Underscore.js,我有一个FAQ库,这些FAQ在前端分为多个选项卡,我们已经构建了一个处理它们的NodeJS应用程序,这样我们就可以拥有一个FAQ数据库,而不是硬编码的HTML 我有一个NodeJS模型,生成一个JSON文件,该文件通过标签关联过滤问题,如下所示: res = _.groupBy(res, 'tab_title'); 这就是输出 但是,以下是原始JSON文件的结构,模板中的Mustache标记希望它看起来像: { "tabs": [ { "title": "Tab tit

我有一个FAQ库,这些FAQ在前端分为多个选项卡,我们已经构建了一个处理它们的NodeJS应用程序,这样我们就可以拥有一个FAQ数据库,而不是硬编码的HTML

我有一个NodeJS模型,生成一个JSON文件,该文件通过标签关联过滤问题,如下所示:

res = _.groupBy(res, 'tab_title');
这就是输出

但是,以下是原始JSON文件的结构,模板中的Mustache标记希望它看起来像:

{
"tabs": [
    {
        "title": "Tab title",
        "id": 1,
        "questions": [
            {
                "question": "Question here",
                "id": 1,
                "answer": "Answer here"
            },
            {
                "question": "Question two",
                "id": 2,
                "answer": "Answer here"
            }
        ]
    },
    {
        "title": "Another title",
        "id": 2,
        "questions": [
            {
                "question": "Question here",
                "id": 1,
                "answer": "Answer here"
            },
            {
                "question": "Question two",
                "id": 2,
                "answer": "Answer here"
            }
        ]
    }
}
这样前端标签就可以在标签上循环,然后在标签内循环问题,这样前端就相对自动化了

我曾尝试使用
\uuu.map
函数来输出此结构中所有适当的信息,但我真的很挣扎。有人能为我指出一个有帮助的方向吗

我希望这是足够的信息,但如果没有,我可以提供更多


谢谢

因此,我们开始像您一样生成组

_.groupBy(myArray, 'tab_title');
然而,这并不能完全解决我们这里的问题,对象仍然与预期的结构不匹配。它看起来像:

{
    "tab_title1" : [{...}, {...}],
    "tab_title2" : [{...}, {...}]
}
因此,我们可以使用map函数进一步处理:

_.map(groupObject, (lstFaqs, tab_title) => {
    let first = _.first(lstFaqs),
        tab_object = { 
            title: first.tab_title, 
            id: first.tab_id, 
            questions: _.map(lstFaqs, (faqItem) => {
               id: faqItem.faq_id,
               question : faqItem.faq_question,
               answer : faqItem.faq_answer
            }) 
        }

    return tab_object;
})
我们将得到一个tab_对象数组。因此,要最终确定格式,请执行以下操作:

let result = { "tabs" : array_of_tab_object }
我希望这有帮助