【问题标题】:How to use dynamic query for the rest api如何对rest api使用动态查询
【发布时间】:2019-05-07 10:48:01
【问题描述】:

我是 javascript 的初学者,我正在尝试使用 node.js 创建一个简单的 rest api。到目前为止,我有它。 我在 influxdb 中有一个名为 testDb 的数据库和一个名为 testMeasurement 的表。 testMeasurement 表包含DateOfBirth,ID,FirstName,LastName

(ID 是我的 testMeasurement 表中的标记)

var express = require('express');
const Influx = require('influx')

var app = express();

const influx = new Influx.InfluxDB('http://user:password@localhost:8086/testDb')

app.listen(3000, 'localhost');

    app.get('/myapi', function (req, res) {
        influx.query('select * from testMeasurement').then(result => {
          res.json(result)
        }).catch(err => {
          res.status(500).send(err.stack)
        })
      })

现在,上面给出了我在 testMeasurement 表中来自数据库“testDb”的所有数据。

如何以动态方式定义我的查询,以便过滤我的结果? 例如。如果我输入localhost/myapi/ID={someValue},这应该给我那个ID的relatedData。

任何建议都会很有帮助。

【问题讨论】:

    标签: javascript node.js rest express


    【解决方案1】:

    有很多方法可以实现您想要的。最好的方法是使用通配符。示例:

    app.get('/myapi/:userId', (req, res) => {
        var query_str = 'select * from testMeasurement';
    
        if (req.params.userId){
            query_str += ' where id = ' + req.params.userId;
        } 
    
        influx.query(query_str).then(result => {
            res.json(result)
        }).catch(err => {
            res.status(500).send(err.stack)
        })
    });
    

    这意味着您必须有一个结构化的 API 才能使用,每个项目都有节点。如果您只是想稍微测试一下,一个基本示例是测试 GET 参数,例如:

    app.get('/myapi', function (req, res) {
        var query_str = 'select * from testMeasurement';
    
        if (req.query.id != null){
            query_str += ' where id = ' + req.query.id;
        } 
    
        influx.query(query_str).then(result => {
            res.json(result)
        }).catch(err => {
            res.status(500).send(err.stack)
        })
    })
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      相关资源
      最近更新 更多