2015-05-14 35 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 

}