无法调用方法' forEach'未定义的node.js

时间:2015-02-03 19:29:33

标签: javascript mysql html5 node.js express

我一直在建立一个小网站供学习。但我遇到了像标题这样的错误。为了答案,我在互联网上搜索..我找不到答案。

我的系统是Ubuntu,node.js,express和mysql。

app.js

var fs = require('fs');
var ejs = require('ejs');
var http = require('http');
var mysql = require('mysql');
var express = require('express');

var client = mysql.createConnection({
  user: 'root',
  password: 'password',
  database: 'Company'
});

var app = express();

http.createServer(app).listen(8080, function(){
  console.log('Server running at http://127.0.0.1:8080');
});

app.get('/', function(request, response) {
  fs.readFile('list.html', 'utf8', function(error, data) {
    client.query('SELECT * FROM prodects', function (error, results) {
       response.send(ejs.render(data, {
        data: results
      }));
    });
  });
});

list.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>List Page</title>
</head>
<body>
  <h1>List Page</h1>
  <a href="/insert">INSERT DATA</a>
  <hr />
  <table width="100%" border="1">
    <tr>
      <th>DELETE</th>
      <th>EDIT</th>
      <th>ID</th>
      <th>NAME</th>
      <th>Model Number</th>
      <th>Series</th>
    </tr>
    <% data.forEach(function(item, index) { %>
    <tr>
      <td><a href="/delete/<%= item.id %>">Delete</a></td>

    </tr>
    <% }); %>
  </table>
</body>
</html>

20行有一个错误; 在我的屏幕上,它显示“无法调用方法”forEach'未定义“。

1 个答案:

答案 0 :(得分:2)

我最好的猜测是,在client.query的回调中出现错误,因此results为空。

也许错误是拼写错误的表格名称?产品 - &gt;产品