Как использовать динамический запрос для остальных API - PullRequest
0 голосов
/ 07 мая 2019

Я новичок в javascript и пытаюсь создать простой API для отдыха, используя node.js. Это так далеко, у меня есть это. У меня есть база данных с именем testDb и таблица с именем testMeasurement в influenxdb. testMeasurement таблица содержит DateOfBirth,ID,FirstName,LastName

(идентификатор - это тег в моей таблице 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}, это должно дать мне связанные данные этого идентификатора.

Любой совет был бы так полезен.

1 Ответ

2 голосов
/ 07 мая 2019

Есть много способов достичь того, что вы хотите.Лучший способ сделать это - использовать подстановочные знаки.Пример:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...