[当我尝试使用批量插入时,出现rangeError:
[ERR_OUT_OF_RANGE]:“值”的值超出范围。它必须是> = -2147483648和<=2147483647。已收到3912066366。
我知道这是一个节点问题,但任何解决方法都将不胜感激
这里是我正在使用的数据集https://github.com/gerrymandr/vtd-adjacency-graphs/
插入代码:
async function insertBulkNode(json) {
const newPool = await sql.connect(dbConfig)
let count = json.length;
const table = new sql.Table('[nodes_shapefile]');
table.create = true;
table.columns.add('stCode', sql.Bit, { nullable: true });
table.columns.add('boundary_node', sql.Int, { nullable: true });
table.columns.add('ALAND10', sql.Int, { nullable: true });
table.columns.add('AWATER10', sql.Int, { nullable: true });
table.columns.add('COUNTYFP10', sql.VarChar(100), { nullable: true });
table.columns.add('CD', sql.VarChar(10), { nullable: true });
table.columns.add('POP10', sql.Int, { nullable: true });
table.columns.add('CD113', sql.VarChar(10), { nullable: true });
table.columns.add('id', sql.VarChar(100), { nullable: true });
for (i = 0; i < count; i++) {
let count2 = json[i]['nodes'].length
for(let j = 0; j < count2; j++) {
table.rows.add(json[i]['graph'][0][1], json[i]['nodes'][j]['boundary_node'], json[i]['nodes'][j]['ALAND10'], json[i]['nodes'][j]['AWATER10'], json[i]['nodes'][j]['NAME10'], json[i]['nodes'][j]['COUNTYFP10'], json[i]['nodes'][j]['CD'], json[i]['nodes'][j]['POP10'], json[i]['nodes'][j]['CD113'], json[i]['nodes'][j]['id']);
}
}
console.log('Pool Party');
const request = await newPool.request();
request.bulk(table, (err, result) => {
if (err) {
console.log("ERROR post bulk: " + err);
newPool.close()
}
else {
console.log("SUCCESS! " + result);
newPool.close()
}
})
}
其余代码
const sql = require("mssql");
const fs = require('fs')
const dbConfig = {
server: server,
database: database,
user: user,
password: password,
port: 1433,
options: {
encrypt: true
}
};
const path = 'C:\/Users\/RobbieEdwardes\/Documents\/GitHub\/vtd-adjacency-graphs\/vtd-adjacency-graphs';
const fileNames = ['queen.json', 'rook.json'];
const fullSet = [];
const adjacencySet = [];
(async function(){
let dirList = await fs.readdirSync(path);
let filePathList = await dirFileList(dirList);
let fileList = await getFilesList(filePathList, dirList);
let readFiles = await readEachFile(fileNames, filePathList)
let final = await insertBulkNode(readFiles)
})()
function dirFileList(data){
const returnList = [];
let dirCount = data.length;
for(let i = 0; i < dirCount; i++){
returnList.push(`${path}\/${data[i]}`);
}
return returnList
};
function getFilesList(list, stCode){
const returnSet = []
let listCount = list.length;
for(let i = 0; i < listCount; i++){
let dataSets = {
[i] : fs.readdirSync(`${list[i]}`)
}
returnSet.push(dataSets)
}
return returnSet
}
function readEachFile(list, path){
let pathCount = path.length;
for(let i = 0; i < pathCount; i++){
for(let j = 0; j < fileNames.length; j++){
let fileRead = fs.readFileSync(`${path[i]}\/${list[j]}`)
let jsonParse = JSON.parse(fileRead);
fullSet.push(jsonParse);
}
}
return fullSet;
}
很遗憾,要修复它,我已经将Node的安装版本更改为6.11.5