Node.js mysql在html网站上显示表格

我是新来的node.js,并尝试在HTML网站上显示一个简单的表。 这个表应该填充来自mysqlselect的数据(例如:select * from testtable)。

但是我真的不知道该怎么做。 对于有PHP背景的人,我如何在nodejs的HTML中显示一些sql内容? 我知道git mysql nodejs wiki,但它根本没有帮助,因为这只是获取数据并不显示在网页上。

在nodeJS中做这种事情的最佳做法是什么? 有一个容易理解的方式,还是应该留在PHP? 我真的很喜欢关于node.js的想法,但是开始就像攀登一个滑的悬崖。

我也买了一本关于它的书,但这本书从来没有深入到expression(因为这将是太多的信息.​​.)。 所以我知道快递,帕格,服务静态,我能够服务一个简单的HTML。 但就是这样,没有CRUD或REST,我没有付出50欧元。

编辑:我需要使用一个API或可能使用Angular.js正确的方式吗?

EDIT2:

C:\Users\user\node_test\CRUD2>node app.js module.js:327 throw err; ^ Error: Cannot find module './routes' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (C:\Users\user\node_test\CRUD2\app.js:2:14) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10) 

EDIT3:

 C:\Users\user\node_test\CRUD2>node app.js Express server listening on port 4300 C:\Users\user\node_test\CRUD2\routes\testtable.js:4 var query = connection.query('SELECT * FROM testtable',function(err,rows){ ^ TypeError: Cannot read property 'query' of undefined at C:\Users\user\node_test\CRUD2\routes\testtable.js:4:29 at C:\Users\user\node_test\CRUD2\node_modules\express-myconnection\lib\express-myconnection.js:87:41 at Pool.<anonymous> (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\Pool.js:47:16) at Handshake.Sequence.end (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\protocol\sequences\Sequence.js:78:24) at Handshake.ErrorPacket (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\protocol\sequences\Handshake.js:101:8) at Protocol._parsePacket (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\protocol\Protocol.js:205:24) at Parser.write (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\protocol\Parser.js:62:12) at Protocol.write (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\protocol\Protocol.js:37:16) at Socket.<anonymous> (C:\Users\user\node_test\CRUD2\node_modules\mysql\lib\Connection.js:73:28) at emitOne (events.js:77:13) 

这里是一个例子:

app.js

 var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); //Including controller/dao for testtable var testtable = require('./routes/testtable'); var app = express(); var connection = require('express-myconnection'); var mysql = require('mysql'); // all environments app.set('port', process.env.PORT || 4300); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } app.use( connection(mysql,{ host: 'localhost', user: 'your_user', password : 'your_password', port : 3306, //port mysql database:'dbname' },'pool') ); app.get('/testtable', testtable.list); app.use(app.router); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); }); 

路线/ testtable.js

 exports.list = function(req, res){ req.getConnection(function(err,connection){ var query = connection.query('SELECT * FROM testtable',function(err,rows){ if(err) console.log("Error Selecting : %s ",err ); res.render('testtable',{page_title:"Test Table",data:rows}); }); }); }; 

意见/ testtable.ejs

 <html><body> <table border="1" cellpadding="7" cellspacing="7"> <tr> <th width="50px">No</th> <th>Field 1</th> <th>Field 2</th> <th>Field 3</th> </tr> <% if(data.length){ for(var i = 0;i < data.length;i++) { %> <tr> <td><%=(i+1)%></td> <td><%=data[i].field1%></td> <td><%=data[i].field2%></td> <td><%=data[i].field3%></td> </tr> <% } }else{ %> <tr> <td colspan="3">No user</td> </tr> <% } %> </table> </body></html> 

要运行这个“项目”,你必须安装一些节点模块,你可以在你的根目录下创build一个名为“package.json”的文件:

 { "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app.js" }, "dependencies": { "ejs": "^1.0.0", "express": "3.5.1", "express-myconnection": "1.0.4", "jade": "*", "mysql": "2.2.0" } } 

并在您的项目根目录下调用“npm install”。

我希望它可以帮助你。