在Express 4中打开mysql连接的最佳方法

时间:2015-05-14 08:16:12

标签: javascript mysql node.js express

所以我已经安装了node-mysql,而且我正在快递4上运行。我是一个全新的表达者,想要学习数据库连接的最佳实践。我目前有

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);

正如您所看到的,我在app.js中设置了mysql,如何将此变量发送到work.js.我试过了:

app.use(mysql, work);

但是当我在work.js文件中访问它时,我收到一个错误,说mysql是未定义的。

修改 我已将var mysql = require('mysql'); //set up mysql here添加到我的work.js页面并且它可以正常工作,我应该从app.js中删除它吗?对此最好的做法是什么?每次我想在不同的页面上查询它时,我都不想打开与数据库的新连接吗?

1 个答案:

答案 0 :(得分:1)

您可以在其他文件中使用mysql变量(使用用户路由的示例):

app.js:

exports = module.exports = function (mysql) {

   console.log(mysql);

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

}

users.js:

@echo off
@chcp 65001 > nul
@set PYTHONIOENCODING=utf-8
python "D:\Dropbox\Python\print_file_name.py" %1
pause