[英]How to execute MySQL queries in node.js views?
我在app.js
导入了mysql
模块:
var mysql = require('mysql');
然后我设置mysql
配置:
// Database configuration
var HOST = 'localhost';
var PORT = 3306;
var MYSQL_USER = 'root';
var MYSQL_PASS = 'pass';
var DATABASE = 'ruchevits_website';
创建mysql
客户端对象:
// Create database client
var db = mysql.createClient({
host: HOST,
port: PORT,
user: MYSQL_USER,
password: MYSQL_PASS
});
并选择了我的数据库:
// Use database
db.query('use ' + DATABASE);
所以,现在我可以执行以下查询:
db.query('select id, firstname, lastname from mytable', function(err, result, fields){
if (err)
{
throw err;
}
else
{
console.log('Selected people:');
for (var i in result)
{
var people = result[i];
console.log(people.firstname + ' ' + people.lastname);
}
}
});
但是在app.js
执行所有查询app.js
。
我想在以下部分的特定routes
文件中执行它们:
exports.index = function(req, res)
{
// MySQL query
res.render('resume', {
title: 'Resume'
});
};
这样做的正确方法是什么?
我需要在app.js
文件中使用db
对象。 实际上,问题是如何通过它?
创建一个模块并导出一个返回db对象的函数。
在dbConnection.js
var mysql = require('mysql');
var db = null;
module.exports = function () {
if(!db) {
db = mysql.createClient({
host: HOST,
port: PORT,
user: MYSQL_USER,
password: MYSQL_PASS
});
};
return db;
};
将它用于var db = require('./dbConnection')();
你需要它的地方。 另请参阅Node.js模块缓存功能http://nodejs.org/api/modules.html#modules_caching 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.