NodeJS

截至2016年2月26日,官方的列表中,并没有提供NodeJS的Http API接口的封装。 - -!

好在我们有Github,在上面搜索到一个:
https://github.com/node-influx/node-influx

项目介绍写着的是支持0.9x版本的InfluxDB,我在0.10上试了下,基本可用。
因为是纯Http API接口,如果某些接口有问题的话,可以直接给他 pull request。

附上使用代码:

  1. /**@type InfluxDB*/
  2. var influx = require('influx')
  3. var async = require("async")
  4. var ut = require("./../../util/util.js")
  5. var dbName = "testDB"
  6. var tableName = "weather"
  7. var client = influx({
  8. host : '192.168.0.196',
  9. port : 8086, // optional, default 8086
  10. protocol : 'http', // optional, default 'http'
  11. username : '',
  12. password : '',
  13. database : dbName
  14. })
  15. var altitudes = [1000, 5000]
  16. var areas = ["北", "上", "广", "深"]
  17. async.waterfall([
  18. function(cb){ // 创建数据库
  19. client.createDatabase(dbName, function(err,result){
  20. ut.log("createDatabase", result)
  21. cb(err, null)
  22. } )
  23. },
  24. function(result, cb){ // 获取数据库名字
  25. client.getDatabaseNames( function(err, result){
  26. ut.log("getDatabaseNames", result)
  27. cb(err, null)
  28. } )
  29. },
  30. function(result, cb){ // 写入数据
  31. var points = [
  32. [
  33. {
  34. temperature: ut.RandByRange(0, 100), humidity : ut.RandByRange(-15, 30)
  35. },
  36. {
  37. altitude: altitudes[ut.RandByRange(0, altitudes.length)], area : areas[0]
  38. },
  39. ],
  40. [
  41. {
  42. temperature: ut.RandByRange(0, 100), humidity : ut.RandByRange(-15, 30)
  43. },
  44. {
  45. altitude: altitudes[ut.RandByRange(0, altitudes.length)], area : areas[1]
  46. },
  47. ],
  48. ]
  49. client.writePoints(tableName, points, function(err, result){
  50. ut.log("writePoint", result)
  51. cb(err, null)
  52. } )
  53. },
  54. function(result, cb){ // 查询数据
  55. client.query( 'SELECT * FROM weather ORDER BY time DESC LIMIT 3', function(err,result){
  56. ut.log("query", result)
  57. cb(err, null)
  58. } )
  59. },
  60. function(result, cb){
  61. client.getMeasurements( function(err,result){
  62. ut.log("getMeasurements", JSON.stringify(result))
  63. cb(err, null)
  64. })
  65. }
  66. ]
  67. , function(err, result){
  68. ut.log("finish...", err, result)
  69. }
  70. )