簡體   English   中英

如何對其余API使用動態查詢

[英]How to use dynamic query for the rest api

我是javascript的初學者,正在嘗試使用node.js創建一個簡單的rest api。 到目前為止,我已經掌握了。 我有一個名為數據庫testDb和表稱為testMeasurement在influxdb。 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)
        })
      })

現在,上面給了我來自數據庫“ testDb”的testMeasurement表中的所有數據。

如何動態定義查詢,以便可以過濾結果? 例如 如果我輸入localhost/myapi/ID={someValue} ,這應該給我該ID的relatedData。

任何建議都將非常有幫助。

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

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)
    })
})

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM