如何查询 Express.js 中的特定内容?

Posted

技术标签:

【中文标题】如何查询 Express.js 中的特定内容?【英文标题】:How do I query something specific in Express.js? 【发布时间】:2020-06-29 13:49:57 【问题描述】:

我已经解决了排行榜 API 未正确刷新的另一个问题。我现在有另一个快速查询问题,我正在尝试搜索特定的 Discord ID。将 quick.db 用于我的数据库并重用下面的部分 express.js 代码,该代码适用于我的其他项目,以按 ID 搜索不同的禁令证据。

https://website.com/api/levelstats?id=DISCORDID

当我将 Discord ID 放入上述 URL 时。它应该解析 URL 并在 Object 中输出以下结果:

app.get("/api/levelstats",  async function(request, response) 
  response.setHeader('Content-Type', 'application/json');
  if (!request.query.id) return response.send('null');
  let data;
  if (request.query.id !== 'all') data = await db.fetch('60Levelings', 
    target: request.query.id
  );
  else data = await db.fetch('60Levelings');
  if (!request.query.id !== 'all' && data) data.code = qs.parse(data.code).raw;
   response.send(JSON.stringify(data));
)

我尝试了一种不同的方法,即 params 但没有成功。我会很感激任何帮助,谢谢。

【问题讨论】:

那它是怎么不工作的呢?错误、错误结果、意外行为? 嘿,它什么都不显示,或者它只是获取所有的调平数据。 【参考方案1】:

你可以试试这个:

app.get("/api/levelstats",  async function(request, response) 
  response.setHeader('Content-Type', 'application/json');
  if (!request.query.id) return response.send('null');
  let data;
  // change !== to != , maybe you can compare value only and ignore type data
  if (request.query.id != 'all') 
    // if request.query.id is not all, change type data request.query.id from string to int
    data = await db.fetch('60Levelings', 
      target: parseInt(request.query.id)
    );
    data.code = qs.parse(data.code).raw;
    response.send(JSON.stringify(data));
  
  else 
    data = await db.fetch('60Levelings');
  

【讨论】:

以上是关于如何查询 Express.js 中的特定内容?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Express.js 刷新特定输入值

如何在node express js上动态更新mysql中的行

如何在 Express.js 应用程序中将猫鼬模型与正确的 MongoDB 集合相关联?

如何从 Bigquery 中的这个嵌套 JSON 类型列中查询特定的内容

使用 express js、passport s 保护 GraphQL 查询

如何保护 express.js 中的路由?