【发布时间】:2015-04-03 03:15:49
【问题描述】:
我一直在做一个学习的小网站。但我遇到了标题之类的错误。为了答案,我在互联网上到处搜索..我找不到答案。
我的系统是 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'”。
【问题讨论】:
-
嗯....您不需要使用
fs读取list.html文件。你应该这样做...ejs.render( 'list.html', { data: results } ) -
Also...
data可能是null... 因为我认为您在查询中想要products而不是prodects... 因此执行时出错查询结果为null。
标签: javascript mysql html node.js express