javascript - 如何将变量从回调函数传递到函数调用?

标签 javascript node.js postgresql johnny-five

在这里,我使用简单的 javascript 将传感器数据发送到数据库(约翰尼五号) 使用此代码

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 ($1);", n);

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

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

关于javascript - 如何将变量从回调函数传递到函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35863980/

相关文章:

javascript - 在 Javascript 中“卡住”数组?

javascript - document.documentElement 上的 mouseup 事件不会触发警报

node.js - Sequelize如何返回被破坏的行

node.js - 连接到 SQL Server 时通过 Sequelize 连接的问题

javascript - 在不使用 jQuery UI 的情况下使用 jQuery 模拟 div 的帧调整大小行为?

javascript - 第一次执行代码时将永久值存储在变量中,JavaScript

node.js - Sequelize – 多对多关联

sql - 如何在 PostgreSQL 上将所有列转换为正确的大小写/标题大小写?

postgresql 在执行 select 语句时忽略时间戳的毫秒数

postgresql - PostgreSQL 中的 PL/pgSQL 查询返回新的空表的结果