Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript流入查询_Javascript_Node.js - Fatal编程技术网

JavaScript流入查询

JavaScript流入查询,javascript,node.js,Javascript,Node.js,我想使用javascript(特别是node.js)连接到influx数据库,但出现以下错误: 节点:14356)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:1) (节点:14356)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程 我使用的代码如下: const Influx = require(‘inf

我想使用javascript(特别是node.js)连接到influx数据库,但出现以下错误:

节点:14356)未处理的PromisejectionWarning:未处理的承诺拒绝。此错误源于在没有catch块的异步函数中抛出,或者拒绝未使用.catch()处理的承诺。(拒绝id:1) (节点:14356)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程

我使用的代码如下:

const Influx = require(‘influx’);
const express = require(‘express’);
const path = require(‘path’);
const os = require(‘os’);
const bodyParser = require(‘body-parser’);
const app = express();
const influx = new Influx.InfluxDB(‘http://user:pass@datas:8086/db’);
    
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}));
    
app.use(express.static(path.join(__dirname, ‘public’)));
app.set(‘port’, 3000);
    
influx.getMeasurements()
   .then(names => console.log(‘My measurement names are: ’ + names.join(’, ')))
   .then(() => {
      app.listen(app.get(‘port’), () => {
         console.log(Listening on ${app.get('port')}.);
      });
   })
   .catch(error => console.log({ error }));
    
app.get(’/api/v1/usage’, (request, response) => {
   influx.query(SELECT mean(*) FROM \"operatingsystem\" WHERE \"environment\" = \"ENV\" AND time >= (now() - 1m) GROUP BY time(1m), \"component\" fill(none) host = ${Influx.escape.stringLit(os.hostname())})
    .then(result => response.status(200).json(result))
    .catch(error => response.status(500).json({ error }));
});
本质上,在这一点上,我只希望能够查询influxdb并获得JSON响应。有人能对此提出建议吗

谢谢


李。

*这不是答案*


被抛出的错误不会被抓住

添加以下代码,并查看您要忽略的错误:

process.on('uncaughtException', (err) => {
   console.log(err);
});

这将有助于调试并找到真正的问题。

好的,对于遇到这一问题的任何其他人,问题在于我的查询,我从influxDb教程中删除了一些代码,似乎我忽略了修复我正在进行的influx查询,以排除以下内容:

host = ${Influx.escape.stringLit(os.hostname())})

这需要删除,因为我的查询不需要这样做。一旦我这样做了,它就完美地工作了。我的错是没有把东西读得像我应该读的那样透彻!我们生活和学习,但是…

为什么不按照警告信息的建议去做,以及
.catch()
所有你的承诺链,并检查实际的错误是什么?嘿,谢谢,我以为代码就是这么做的…Gregory NEUT谢谢,我应该在哪里添加这个,在哪里?在哪里,必须执行以下操作:unhandledPromisejectionWarning:TypeError:在JSON.stringify()处将循环结构转换为JSON我打赌
influx.query
返回一个不能
stringify
的对象。为了确保这一点,请替换为Hey,谢谢,我这样做了,但似乎仍然会遇到同样的问题,(节点:5688)未经处理的PromisejectionWarning:TypeError:将循环结构转换为JSON在JSON.stringify()在stringify(c:\nodeJSCode\node\u modules\express\lib\response.js:1119:12)在ServerResponse.JSON(c:\nodeJSCode\node\u modules\express\lib\response.js:260:14)在influx.queryRaw.then.catch.error(c:\nodeJSCode\connectToInflux.js:35:44)在at process