TypeError:无法读取nodejs中未定义的属性“push”

时间:2017-03-23 09:39:16

标签: javascript node.js

当我尝试使用节点运行时,我遇到了“TypeError:无法读取属性'push'of undefined”的问题。

我已经定义了需要推送给它们的标头和索引。这是代码:

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:datasci@localhost: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) {});

这是将元素推送到数组的功能:

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;
}

我真的需要这样做,但仍然有这个问题。请帮忙。

1 个答案:

答案 0 :(得分:0)

<?php
    $n = $_POST['nm'];
    $link = mysql_connect("localhost", "root") or die(mysql_error());
    mysql_select_db('apartments', $link) or die(mysql_error());
    $query = "UPDATE Customers SET name (".$n");" //Customers - table, name - column in this table 
    mysql_query($query);
    mysql_close($link);
    echo "Запись изменена!";
?>

是不是因为index [counter]未定义?