繁体   English   中英

使用两步式变量(Node.js)插入MySQL

[英]Inserting to MySQL using variable from two-step (Node.js)

我想使用此代码在mysql中存储2行(要存储的变量来自exec):

#!/usr/bin/node
var mysql = require("mysql");

var tempId1 = '28-000006140194';
var tempId2 = '28-000006280f8c'; 

// First you need to create a connection to the db
var con = mysql.createConnection({
  host: "localhost",
  user: "xxx",
  password: "xxx",
  database: "xxx"
});


con.connect(function(err){
  if(err){
    console.log('Error connecting to Db');
    return;
  }
  console.log('Connection established');
});

var TwoStep = require("two-step");
var exec, start;
exec = require('child_process').exec;
start = function() {
  TwoStep(
    function() {
      exec("cat /sys/bus/w1/devices/" + tempId1 + "/w1_slave | grep t= | cut -f2 -d= | awk '{print $1/1000}'", this.val("t1"));
      exec("cat /sys/bus/w1/devices/" + tempId2 + "/w1_slave | grep t= | cut -f2 -d= | awk '{print $1/1000}'", this.val("t2"));
    },
    function(err, t1, t2) {
      var temp1 = parseFloat(t1).toFixed(2);
      var temp2 = parseFloat(t2).toFixed(2);

      var storeTemp1 = { tid: 1, temp: temp1 };
      var storeTemp1 = { tid: 2, temp: temp2 };

      con.query('INSERT INTO temperatures SET ?', storeTemp1, function(err,res){
        if(err) throw err;

        console.log('Last insert ID:', res.insertId);
      });

      con.query('INSERT INTO temperatures SET ?', storeTemp2, function(err,res){
        if(err) throw err;

        console.log('Last insert ID:', res.insertId);
      });

      con.end(function(err) {
      });
    }
  );
};

当我执行此命令时,控制台上只有“已建立连接”,并且没有任何反应-scipt挂起(我需要按ctrl + c退出)。 db中也没有新记录。 我究竟做错了什么?

您正在声明一个start = function () { ...变量,该变量在脚本的任何地方都没有被调用。 只需调用它!

// at end of script
start();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM