通过NodeJS和Express检索MySQL查询的所有内容到Jade模板引擎

简单的新手问题,我开始与nodejs,一般来说,我是后端语言的新手。

我设法使用express-js中的默认jade引擎将一个字段从数据库发布到网页。

/** * Module dependencies. */ var express = require('express'); var app = module.exports = express.createServer(); var sqlResult; //MySql var mysqlClient = require('mysql').Client, newClient = new mysqlClient(), Database = 'test', Table = 'test_table'; newClient.user ='root'; newClient.password='password'; newClient.connect(console.log('connected to the database.')); newClient.query('USE '+Database); newClient.query( 'SELECT * FROM '+Table, function selectCb(err, results, fields) { if (err) { throw err; } sqlResult = results[0]; console.log(sqlResult['text'], sqlResult['title']); } ); // Configuration app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser()); app.use(express.session({ secret: 'your secret here' })); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function(){ app.use(express.errorHandler()); }); // Routes app.get('/', function(req, res){ res.render('index', { title: sqlResult['title'] }); }); app.listen(3000); console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 

我的问题是,我怎样才能显示由MySQL Query检索的所有元素的列表?

谢谢 :)

喜欢这个。 结果是一个数组,所以你必须循环它

  for (var i in results){ var sqlResult = results[i]; console.log(sqlResult['text'], sqlResult['title']); } 

将完整的结果传递给Jade

 app.get('/', function(req, res){ newClient.query('USE '+Database); newClient.query('SELECT * FROM '+Table, function selectCb(err, results, fields) { if (err) { throw err; } res.render('index', { title: results[0].title, results: results }); } }); 

然后在你的Jade里迭代它们

 - for( var i = 0, len = results.length; i < len; i++ ) { .result .field1= results[i].field1 .field2= results[i].field2 - } 

甚至更好

 ul - each result in results li= result.text 

感谢generalhenry,我find了一个方法。

基本上我不需要添加其他的东西到MySQL的get函数或服务器js的查询function。

这一切都是关于翡翠引擎,这个代码的工作原理是:从get函数(在这种情况下,结果)中传递variables,并迭代它,select我想要的字段。

 h1 Hello there! p Welcome to this try - for( var i = 0; i < results.length; i++ ) { - var textbody = results[i] p= textbody['text'] - } 

希望可以帮助别人在未来:)