NodeJS
截至2016年2月26日,官方的列表中,并没有提供NodeJS的Http API接口的封装。 - -!
好在我们有Github,在上面搜索到一个:
https://github.com/node-influx/node-influx
项目介绍写着的是支持0.9x版本的InfluxDB,我在0.10上试了下,基本可用。
因为是纯Http API接口,如果某些接口有问题的话,可以直接给他 pull request。
附上使用代码:
/**@type InfluxDB*/var influx = require('influx')var async = require("async")var ut = require("./../../util/util.js")var dbName = "testDB"var tableName = "weather"var client = influx({host : '192.168.0.196',port : 8086, // optional, default 8086protocol : 'http', // optional, default 'http'username : '',password : '',database : dbName})var altitudes = [1000, 5000]var areas = ["北", "上", "广", "深"]async.waterfall([function(cb){ // 创建数据库client.createDatabase(dbName, function(err,result){ut.log("createDatabase", result)cb(err, null)} )},function(result, cb){ // 获取数据库名字client.getDatabaseNames( function(err, result){ut.log("getDatabaseNames", result)cb(err, null)} )},function(result, cb){ // 写入数据var points = [[{temperature: ut.RandByRange(0, 100), humidity : ut.RandByRange(-15, 30)},{altitude: altitudes[ut.RandByRange(0, altitudes.length)], area : areas[0]},],[{temperature: ut.RandByRange(0, 100), humidity : ut.RandByRange(-15, 30)},{altitude: altitudes[ut.RandByRange(0, altitudes.length)], area : areas[1]},],]client.writePoints(tableName, points, function(err, result){ut.log("writePoint", result)cb(err, null)} )},function(result, cb){ // 查询数据client.query( 'SELECT * FROM weather ORDER BY time DESC LIMIT 3', function(err,result){ut.log("query", result)cb(err, null)} )},function(result, cb){client.getMeasurements( function(err,result){ut.log("getMeasurements", JSON.stringify(result))cb(err, null)})}], function(err, result){ut.log("finish...", err, result)})
