我来自一种非常“功能性”的编程风格(PHP、Lua、C),我正试图将我的想法转变为 NodeJS 使用的 MVC 模型。目前,这对我来说是一个非常陡峭的学习曲线。
我一直在努力尝试将一个简单的 MySQL 数组打印到 Jade。
应用程序.js
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path')
, mysql = require('mysql');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
//MySQL
var sqlInfo = {
host: '12.34.56.78',
user: 'user',
password: 'pass',
database: 'user'
}
var client = mysql.createConnection(sqlInfo);
client.connect();
client.query( "SELECT * FROM list ORDER BY status ASC LIMIT 25", function(err, row, fields){
if (err) throw err;
else {
var applications = row;
app.render("applications", applications, function(err, html){});
}
});
client.end();
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
索引.jade
extends layout
block content
div.container
div.content
- if (typeof(applications) !== 'undefined')
ul
- each app in data
li= app.status
- else
p Blank slate mate...
div.footer
我认为我的问题源于 app.render/res.render 函数......这个函数的概念并没有真正点击,我在让它工作时遇到了问题,就像我在许多其他 MySQL + NodeJS 中看到的那样例子。
非常感谢任何提示或提示!