2017-03-23 1 views
0

노드와 함께 실행하려고하면이 "TypeError : 속성 '푸시'가 정의되지 않음 '을 읽을 수 없습니다.TypeError : nodejs에서 undefined의 'push'속성을 읽을 수 없습니다.

이미 푸시해야하는 헤더와 색인을 정의했습니다.

function moveToArray() 
{ 
    fs.appendFile(path, "---------------------------------", function(error) {}); 
    console.log("---------------------------------"); 
    var dfd = q.defer(); 
    while(index.length>0){ 
    index.pop(); 
    } 
    while(header.length>0){ 
    header.pop(); 
    } 
    headtrigger = 0; 
     headallow = 0; 
    fs.appendFile(path, data, function(error) {}); 
    console.log(data); 
    for (var i = 0; i < data.length; i++) 
    { 
    char = data[i]; 
    if ((char >= "A" && char <= "Z") || (char >= "a" && char <= "z")) 
    { 
     headtrigger = 1; 
     headallow = 2; 
     tmp += char; 
    } 
    else if (char == " " && headtrigger == 1) 
    { 
     //console.log("hello " + i); 
     header.push(tmp); 
     tmp = ""; 
     headtrigger = 0; 
    } 
    else if (char == "+" && headallow == 2) 
     break; 
    else 
     continue; 
    } 
    headtrigger = 0; 
    headallow = 0; 
    //var index = new Array(header.length); 
    for(var l=0;l<header.length;l++) 
    index.push([]); 

    for (var j = i; j < data.length; j++) 
    { 
    char = data[j]; 
    if (char != "|" && char != "+" && char != "-" && char != "\n") 
    { 
     if(data[j] == " " && data[j+1] == " ") 
     continue; 
     if(data[j-1] != "|" && data[j+1] != "|") 
     { 
     headtrigger = 1; 
     headallow = 2; 
     tmp += char; 
     } 
    } 
    else if (char == "|" && headtrigger == 1) 
    { 
     index[counter].push(tmp); 
     //console.log(tmp); 
     tmp = ""; 
     headtrigger = 0; 
     counter++; 
     if(counter == header.length) 
     counter = 0; 
    } 
    else if (char == "+" && headallow == 2) 
    { 
     break; 
    } 
    } 

    //console.log(header); 
    fs.appendFile(path, index, function(error) {}); 
    console.log(index); 

    dfd.resolve(); 
    return dfd.promise; 
} 

난 정말이 작업을 수행하지만 여전히이 문제가 될 필요 :

var fs = require("fs"); 
var sys = require('sys'); 

var neo4j = require('node-neo4j'); 
const q = require('q'); 
const exec = require('child_process').exec; 
db = new neo4j('http://neo4j:[email protected]:7474'); 

var neo4jCreateNode = []; 
var len; 
var lenSub; 
var tableName = ["category","customer","lot","minorproduct","part","product","productpart","supplier","transaction"]; 
var attributeName = [["categoryid","categoryname","description"], 
      ["city","country","customerid","customername","phone","postalcode","streetaddr"], 
      ["lotid","partid"], 
      ["minorproductid","productid"], 
      ["partid","partname","supplierid"], 
      ["categoryid","productid","productname"], 
      ["lotid","minorproductid","partid","productid"], 
      ["city","contactname","country","phone","postalcode","streetaddr","supplierid","suppliername"], 
      ["customerid","minorproductid","productid","transactionid"]]; 
var data = ""; 
var char; 
var headtrigger = 0; 
var headallow = 0; 
var counter = 0; 
var productID; 
var productname; 
var tmp = ""; 
var header = []; 
var index = []; 
var neoQuery =[]; 
var countI = 0; 
var countJ = 1; 
var countK = 0; 
var countL = 0; 
var path = "/root/datasci/webserver/src/neo4j/Neo4jlog.txt"; 
fs.writeFile(path, "Hello", function(error) {}); 

이 배열에 요소를 밀어하는 기능은 다음과 같습니다 여기에 코드입니다. 도와주세요.

답변

0
index[counter].push(tmp); 

인덱스 [카운터]가 정의되지 않았기 때문일 수 있습니까?

관련 문제