Javascript 如何根据路由中的变量访问MongoDB中的数据?

Javascript 如何根据路由中的变量访问MongoDB中的数据?,javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我正在修改一个flashcard应用程序,该应用程序当前设置为从JSON文件中提取问题、提示和答案。我想从Mongo数据库中提取所有这些信息 我已经在MongoDB本地建立了一个名为“flashcards”的数据库和一个名为“cards”的集合。“卡片”收藏中已经有五个文档——每个文档包含一个问题、一个提示和一个答案 我有一个这样设置的路由:localhost:5000/${id}?side=${question/answer},我想用一个id填充该路由,并根据Mongo中“cards”集合中关

我正在修改一个flashcard应用程序,该应用程序当前设置为从JSON文件中提取问题、提示和答案。我想从Mongo数据库中提取所有这些信息

我已经在MongoDB本地建立了一个名为“flashcards”的数据库和一个名为“cards”的集合。“卡片”收藏中已经有五个文档——每个文档包含一个问题、一个提示和一个答案

我有一个这样设置的路由:
localhost:5000/${id}?side=${question/answer}
,我想用一个id填充该路由,并根据Mongo中“cards”集合中关联文档的id显示一个问题或答案

在从JSON提取时给每个问题一个id很容易,您只需设置一个需要JSON文件的变量,然后就可以使用点符号或括号符号访问每个元素。i、 e:

const cards = require('./data/flashcardData.json');
一般格式如下所示:

cards[id][side];
抓取第一张卡片和问题侧的具体示例:

cards[0][question];
JSON供参考:

{

"data": {

"title": "JavaScript Flashcards",
"cards": [
  {
    "question": "What language are Express apps written in?",
    "hint": "It starts with a \"J\"",
    "answer": "JavaScript"
  },
  {
    "question": "What is one way a website can store data in a user's browser?",
    "hint": "They are delicious with milk",
    "answer": "Cookies"
  },
  {
    "question": "What is a common way to shorten the response object's name inside middleware?",
    "hint": "It has the same abbreviation as \"resolution\"",
    "answer": "res"
  },
  {
    "question": "How many different values can booleans have?",
    "hint": "Think: binary",
    "answer": "2"
  },
  {
    "question": "Which HTML element can contain JavaScript?",
    "hint": "It starts with an \"s\"",
    "answer": "<script>"
  }
]
  }
}
{
“数据”:{
“标题”:“JavaScript抽认卡”,
“卡片”:[
{
“问题”:“Express应用程序是用什么语言编写的?”,
“提示”:“它以\“J\”开头,
“答案”:“JavaScript”
},
{
“问题”:“网站在用户浏览器中存储数据的一种方式是什么?”,
“提示”:“加牛奶很好吃”,
“答案”:“饼干”
},
{
“问题”:“在中间件中缩短响应对象名称的常用方法是什么?”,
“提示”:“其缩写与“决议”相同,
回答:“res”
},
{
“问题”:“布尔值可以有多少个不同的值?”,
“提示”:“思考:二进制”,
“答复”:“2”
},
{
“问题”:“哪个HTML元素可以包含JavaScript?”,
“提示”:“它以\“s\”开头,
“答复”:”
}
]
}
}
以下是“flashcards”数据库中的“cards”集合的外观,其信息与上述相同:

{
  "_id": ObjectId("5a8b3084c926c61f9f90b61a"),
  "question": "What language are Express apps written in?",
  "hint": "It starts with a \"J\" ",
  "answer": "Javascript"
}
{
  "_id": ObjectId("5a8b31eac5fcfe1fc032ceda"),
  "question": "What is one way a website can store data in a user's browser?",
  "hint": "They are delicious with milk",
  "answer": "Cookies"
}
{
  "_id": ObjectId("5a8b31eac5fcfe1fc032cedb"),
  "question": "What is a common way to shorten the response object's name inside middleware?",
  "hint": "It has the same abbreviation as \"resolution\" ",
  "answer": "res"
}
{
  "_id": ObjectId("5a8b31eac5fcfe1fc032cedc"),
  "question": "How many different values can booleans have?",
  "hint": "Think binary",
  "answer": "2"
}
{
  "_id": ObjectId("5a8b3264e122b41fce2fbcbd"),
  "question": "Which HTML element can contain JavaScript?",
  "hint": "It starts with an \"s\" ",
  "answer": "<script>"
}
{
“_id”:ObjectId(“5a8b3084c926c61f9f90b61a”),
“问题”:“Express应用程序是用什么语言编写的?”,
“提示”:“它以\“J\”开头,
“答案”:“Javascript”
}
{
“_id”:ObjectId(“5a8b31eac5fcfe1fc032ceda”),
“问题”:“网站在用户浏览器中存储数据的一种方式是什么?”,
“提示”:“加牛奶很好吃”,
“答案”:“饼干”
}
{
“_id”:ObjectId(“5a8b31eac5fcfe1fc032cedb”),
“问题”:“在中间件中缩短响应对象名称的常用方法是什么?”,
“提示”:“其缩写与“决议”相同,
回答:“res”
}
{
“_id”:ObjectId(“5A8B31EAC5FCFE1FC032CDC”),
“问题”:“布尔值可以有多少个不同的值?”,
“提示”:“思考二进制”,
“答复”:“2”
}
{
“_id”:ObjectId(“5a8b3264e122b41fce2fbcbd”),
“问题”:“哪个HTML元素可以包含JavaScript?”,
“提示”:“它以\“s\”开头,
“答复”:”
}
我如何复制Mongo之前发生的事情