Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js和mssql基于JSON动态填充表_Javascript_Sql Server_Json_Node.js - Fatal编程技术网

Javascript Node.js和mssql基于JSON动态填充表

Javascript Node.js和mssql基于JSON动态填充表,javascript,sql-server,json,node.js,Javascript,Sql Server,Json,Node.js,我试图使用Node.js和“mssql”包将一些JSON数据存储到SQL Server表中。但是,我需要动态生成表并填充它 我已经根据JSON数据定义了这个表,现在我需要用JSON数据填充它。我的问题是我不知道如何动态创建mssql.Table行。执行以下操作 var sql = require('mssql'); var table = new sql.Table('table'); table.columns.add('one', sql.VarChar(2)); table.colum

我试图使用Node.js和“mssql”包将一些JSON数据存储到SQL Server表中。但是,我需要动态生成表并填充它

我已经根据JSON数据定义了这个表,现在我需要用JSON数据填充它。我的问题是我不知道如何动态创建mssql.Table行。执行以下操作

var sql = require('mssql');

var table = new sql.Table('table');

table.columns.add('one', sql.VarChar(2));
table.columns.add('two', sql.VarChar(2));
table.columns.add('three', sql.VarChar(2));

table.rows.add('1', '2', '3');
table.rows.add('4', '5', '6');
table.rows.add('7', '8', '9');
table.rows.add('10', '11', '12');

table.rows.add(row);
导致

Table {
  name: 'table',
  schema: null,
  database: null,
  path: '[table]',
  temporary: false,
  columns:
   [ { type: [sql.VarChar],
       length: 2,
       name: 'one',
       nullable: undefined,
       primary: undefined },
     { type: [sql.VarChar],
       length: 2,
       name: 'two',
       nullable: undefined,
       primary: undefined },
     { type: [sql.VarChar],
       length: 2,
       name: 'three',
       nullable: undefined,
       primary: undefined } ],
  rows:
   [ [ '1', '2', '3' ],
     [ '4', '5', '6' ],
     [ '7', '8', '9' ],
     [ '10', '11', '12' ] ] }
添加时

var row = {one: '13', two: '14', three: '15'};
table.rows.add(row);
row = ['16', '17', '18']
table.rows.add(row);
我明白了

这显然不是我想要的

像这样做

var row = new sql.Table.row;
row.item.add('13')
row.item.add('14')
row.item.add('15')
table.rows.add(row);
这就是我要做的,这将允许我向表中添加任何我想要的值,而无需对它们进行硬编码。通过查看mssql包文档,我找不到任何提及此类内容的内容


任何帮助都将不胜感激!谢谢

您需要对数组进行分解,以便将数组的值作为单个值发送,您可以执行以下操作:

var rowObj = { one: '13', two: '14', three: '15' };
var rowArr = ['16', '17', '18'];

// converting obj to arr of object value
var rowObjArr = Object.values(rowObj);

// adding array to the table, using array destructuring
table.rows.add(...rowObjArr);
table.rows.add(...rowArr);
使用数组扩展运算符(
…array
),可以执行以下操作:

function myFunction(x, y, z) { }

var args = [0, 1, 2];
myFunction(...args);
这将使我能够将数组的值作为单个参数发送给函数


参考:

太棒了!这确实是我所缺少的。我真的很感谢你的快速帮助!
function myFunction(x, y, z) { }

var args = [0, 1, 2];
myFunction(...args);