2015-05-14 58 views
0

所以我安装了node-mysql,并且运行在express 4上。我是全新的表达并希望学习数据库连接的最佳实践。我现在有在Express 4中打开mysql连接的最佳方式

app.js

var mysql = require('mysql'); //set up mysql here 

var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var work = require('./routes/work'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon in /public 
//app.use(favicon(__dirname + '/public/favicon.ico')); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))) 

app.use('/', routes); 
app.use('/users', users); 
app.use('/work', work); //send the mysql var to work..? 
app.use(mysql, work); 

正如你可以看到我有MySQL的成立app.js,我将如何发这个变量work.js.我已经试过:

app.use(mysql, work); 

但我得到一个错误说的mysql是不确定的时候我在work.js文件访问它。

编辑: 我添加var mysql = require('mysql'); //set up mysql here我work.js页面,它的正常工作,我应该从app.js删除吗?最佳做法是什么?每次我想在不同的页面上查询它时,我都不想打开一个到数据库的新连接?

回答

1

您可以使用这个变量在那样的其他文件(例如与用户线路):

app.js:

var mysql = require('mysql'); //set up mysql here 

var users = require('./routes/users')(mysql); 

var app = express(); 

users.js:

exports = module.exports = function (mysql) { 

    console.log(mysql); 

    // do what you have to do with the mysql variable 

}