如何将变量从回调函数传递给函数调用?

how to pass variable from callback function to function call?

这里我使用简单的方式将传感器数据发送到数据库 javascript (johnny five) 使用此代码

var five = require("johnny-five");
var pg = require("pg");
var conString = "pg://admin:raja@localhost:5432/data";
var client = new pg.Client(conString);

function call(n)
{
  client.connect();
  client.query("INSERT INTO sensordata (event) VALUES (n);");
}


var board = new five.Board();
board.on("ready", function() {

  var sensor = new five.Sensor.Digital(2);

  sensor.on("change", function() {
    var n = this.value;
    call(n);
  });
});

我的问题是我能否将传感器回调函数中的流数据变量 n 传递给调用方法。

我认为,您在这里看到的是一个简单的查询模板,所有 sql 客户都支持:

client.query("INSERT INTO sensordata (event) VALUES ();", n);

这样您就可以将 n 变量的值传递给您的 SQL 查询。

更新: 而且您不必在每次调用 client.query 之前调用 client.connect()。您应该只调用一次来建立数据库连接,之后 pg.Client 将使用它发送所有后续请求。