node.js mysql插入ID-如何在插入查询之外公开插入ID?

拉里·欧文斯_1967

假设我有一个需要插入mysql表的json格式(或任何格式)的值列表。插入之后,我需要在mysql.query调用之外公开result.insertId。有没有办法做到这一点?(请不要问我为什么需要这样做:我知道如何解决这个问题。我只需要知道这种情况是否可行)。理想情况下,每个数组项的描述和插入ID应该打印到屏幕上。相反,我得到一个空数组。是的,我知道将console.log放在回调中将实现此目的。那不是我需要的答案。是否可以在回调之外公开插入ID?

var todos = require('./todos.json');
var mysql = require('mysql');

var mysql_pool = mysql.createPool({
  host : 'localhost',
  user : 'myuser',
  password : 'mypwd',
  database : 'mydb'});

var todoArray = [];

todos.forEach(function(todo) {
   mysql_pool.query("INSERT INTO todos(description) VALUES(?)", todo.description, function(err, result){
        if (err) {
            console.log(" Unable to insert: " + err);
            throw err;
            }
        todoArray.push({description: todo.description, desc_id: result.insertId});
    });
});

console.log(todoArray);
cmp-202

我同意在console.log命令之后完成查询回调函数的Brian重新异步性质,因此没有结果。关于查询循环,以下方法通过使其顺序化来解决。当运行前一个查询回调时,将加载下一个数据。

问题是您不知道何时使用当前方法处理整个数组。如果您知道最后一个循环,则可以将数组作为查询回调中的最后一步进行处理。在此之前,您只需加载阵列。

使用迭代器的next命令将为您提供下一个值和一个指示器(如果它是最后一个循环)。

希望是这样的:

//use require to get node to parse in the json file as an object
//set todo as iterator type
var todos = require("./path/todos.json")[Symbol.iterator](),
todoArray = [],
todo = todos.next()

//todos.next() iterator cammand returns {done: true/false, value: { }}
//we want to know the end so we can process todoAray

do { 
    mysql_pool.query("INSERT INTO todos(description) VALUES(?)",
        todo.value.description, 
        function(err, result){ 
            if (err) { console.log(" Unable to insert: " + err); throw err; }
            todoArray.push({description: todo.value.description, desc_id: result.insertId})
            todo = todos.next()
            If(todo.done === true){
                console.log(todoArray)
            }
    }); 
}while (!todo.done)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用node.js批量插入MySql

来自分类Dev

插入多对多表 - Node JS MySQL

来自分类Dev

在Node.js中插入查询

来自分类Dev

如何使用Node.js和Postgresql查找最后一个插入ID?

来自分类Dev

如何在JS中基于CSS类插入Node?

来自分类Dev

Node.js,Mongo async.js插入和查询

来自分类Dev

使用node.js在mysql中插入几何值

来自分类Dev

通过node.js将多行插入mysql

来自分类Dev

使用Node.js + CoffeeScript + MySQL进行几个相关的插入

来自分类Dev

使用Node.js(Express)和mySQL插入TIMESTAMP?

来自分类Dev

使用node.js向MySQL插入许多行

来自分类Dev

使用Node.js格式化插入MySQL的日期

来自分类Dev

带有On Dublicate的Node.js Mysql插入对象

来自分类Dev

通过node.js将多行插入mysql

来自分类Dev

使用Node.js格式化插入MySQL的日期

来自分类Dev

使用node.js将记录插入MySQL

来自分类Dev

无法使用 Node.js 批量插入 mysql

来自分类Dev

使用sqlite3和node.js插入ID字段自动递增

来自分类Dev

获取插入的ID MYSQL

来自分类Dev

获取插入的ID MYSQL

来自分类Dev

node-mssql事务插入-返回插入的ID。

来自分类Dev

如何使用Node.js从Angular将日期插入MySQL DATETIME列?

来自分类Dev

从Node JS在Cassandra中插入BigInt

来自分类Dev

使用Node.js插入mongodb

来自分类Dev

node.js 插入到 mongodb

来自分类Dev

node.js和猫鼬,如何批量插入?

来自分类Dev

如何使用Sequelize和node.js进行批量插入

来自分类Dev

如何使用Node.Js在MongoDB中插入或更新数组?

来自分类Dev

如何使用node.js将数组插入mongodb