JS Fetch:有没有一种方法可以通过获取请求传递表名?

时间:2020-05-20 04:01:12

标签: javascript mongodb fetch

我有两个表,一个表用于用户,一个表用于待办事项,单击todo按钮时,我使用以下代码获取所有待办事项。我想使用相同的功能来获取所有用户。

index.html:

    displayItems() {
      fetch('/getItems',{
        method: "get",
      }).then(response => {
        return response.json();
      }).then((data)=>{
        this.items = data
      });
    }

app.js:

app.get('/getItems', (req,res)=>{      
  db.getDB().collection(tableName).find({}).toArray((err,documents)=>{
    if(err)
      console.log(err);
    else {
      console.log(documents);
      res.json(documents);
    }
  });
});

只要我在app.js中设置tableName,此方法就可以正常工作,但随后我必须编写单独的函数才能从两个不同的表中获取项目。

当我在index.html中调用fetch时,是否有一种方法可以传递表名,具体取决于单击哪个按钮?

1 个答案:

答案 0 :(得分:1)

您将参数发送到displayItems函数,并像

一样以get paramater的形式发送
displayItems(tableName) {
  fetch('/getItems?table='+tableName,{
    method: "get",
  }).then(response => {
    return response.json();
  }).then((data)=>{
    this.items = data
  });
}

然后您可以像

一样使用req.query在服务器端进行访问
app.get('/getItems', (req,res)=>{      
  db.getDB().collection(req.query.table).find({}).toArray((err,documents)=>{
    if(err)
      console.log(err);
    else {
      console.log(documents);
      res.json(documents);
    }
  });
});