[英]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.