如何通过NodeJS API for Influxdb在ReactJS中获取数据?

时间:2018-06-22 08:17:00

标签: node.js reactjs influxdb

我正在使用InfluxDB作为数据库,我使用了influxdb-nodejs库模块来创建API以从Influxdb写入数据和查询数据。

Queryfunction.js API代码如下:

module.exports = {
  queryfunc: function() {
const Influx = require('influxdb-nodejs');
const client = new Influx('http://127.0.0.1:8086/mydb');
client.query('http')
  .where('type', '2')
   .then(console.info)
   .catch(console.error);
  }
}

我使用script.js文件在Queryfunction.js API中调用queryfunc():

const myModule = require('./Queryfunction');
let val = myModule.queryfunc();

我使用命令节点脚本来运行脚本文件。 结果是一个数组  C:\ Users \ Admin \ Desktop \ reactApp \ API>节点脚本

{结果:[{statement_id:0,系列:[Array]}]}

我正在使用ReactJS创建前端UI组件。如何在ReactJS中获取结果数组数据?

1 个答案:

答案 0 :(得分:1)

您要么需要写一个json文件,要么需要对数据库调用进行快速包装。

const express = require('express')
const app = express();

 app.get('/api', (req, res, next) => {
  const Influx = require('influxdb-nodejs');
  const client = new Influx('http://127.0.0.1:8086/mydb');
   client.query('http')
   .where('type', '2')
   .then(data => res.json(data)
   .catch(err => next(err)); // error middleware to handle
 }

app.listen('3000', () => console.log('running on http://localhost:3000'))

在反应范围内,您可以进行提取:

Class App extends React.Component {
  componentDidMount() {
    fetch('http://localhost:3000')
     .then(res => res.json())
     .then(data => this.setState( {data} ) )

  render() {
   ....
  }
}