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