要链接mysql数据库必须要有mysql数据库驱动,这里我们通过修改package.json文件,在dependencies里增加mysql依赖,最终如下:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "*",
"jade": "*",
"mysql": "*"
}
}
dependencies定义依赖包格式是"包名":"版本号",如果版本号为*则NPM自动使用最新版。
定义好依赖关系后我们再执行npm install,node_modules下会多出一个mysql驱动的文件夹。
接下来打开/routes/index.js文件,这是express自动生成的首页文件,后面我们会讲到路由关系定义,到时你就知道为什么它是首页文件了^_^。
index.js的内容很简单,只有几行代码。
exports.index = function(req, res){
res.render('index');//呈现index视图
};
这里我直接给出修改后的的代码,并附上注释。
exports.index = function(req, res){
var Client = require('mysql').Client;
var client = new Client();
client.user = 'root';//用户名
client.password = 'root';//密码
client.query('USE database');
var sql = 'SELECT * FROM datatable';
//if(req.params.id) sql += ' where id='+req.params.id;
client.query(sql, function selectCb(err, results, fields) {
if (err) {throw err;}
//特别注意此部分!
var data = '';
for (var i=0; i<results.length; i++) {
var row = results[i];
data += 'id: ' + row['id']+'title: ' + row['title']+'<br />';
}
res.render('index', { data: data });
});
};
这里请特别注意我标注的重点部分,先不要去管sql语句部分。由于JS最大的特性:非阻塞特性,所以对于返回数据的处理都要放在回调函数中,否则你可能根本得不到任何数据。
如果你对JS很熟悉或者会jQuery之类的JS框架,请使用JS的逻辑思维,如果你使用C++/JAVA,那么就使用你的多线程思维,否则你会崩溃的。