javascript - Use a mysql connection across my express js app -
i pretty new node.js , express bear me please.
i wondering how can mysql instance , use in controller. have 4 files this:
see comment in controller.js file
server.js :
var express = require('./config/express'); var app = express(); module.exports = app; app.listen(3000); console.log('server running');
express.js :
var express = require('express'), bodyparser = require('body-parser'), mysql = require('mysql'); module.exports = function() { var app = express(); app.use(bodyparser.urlencoded({ extended: true })); app.use(bodyparser.json()); app.set('views','./app/views'); app.set('view engine','ejs'); //not sure here or put connection details var dbconnection = mysql.createconnection({ host : 'localhost', user : 'someuser', database : 'somedb', password : 'somepass' }); //connection.connect(); // //connection.query('select 1 + 1 solution', function(err, rows, fields) { // if (err) throw err; // console.log('the solution is: ', rows[0].solution); //}); // //connection.end(); require('../app/routes/index.server.routes.js')(app); app.use(express.static('./public')); return app; };
routes.js :
module.exports = function(app) { var index = require('../controllers/index.server.controller'); app.get('/', index.render); app.post('/', index.stuff); };
controller.js :
exports.render = function(req, res) { //do db stuff here res.render('index', { title: 'this title' }); }; exports.stuff = function(req, res) { res.render('index', { title: 'this title post' }); };
to use connection instance in controller, you'll need pass express.js file controller.js file. first step pass connection instance router:
express.js
require('../app/routes/index.server.routes.js')(app, connection);
this make available in routes.js file. need pass same connection instance controller.
index.server.routes.js
module.exports = function(app, connection) { var index = require('../controllers/index.server.controller')(connection); app.get('/', index.render); app.post('/', index.stuff); };
the controller need refactored takes connection instance argument:
index.server.controller.js
function indexcontroller(connection) { controllermethods = {}; controllermethods.render = function (req, res) { // can use connection instance here. connection.connect() // run query connection.end() ... }; // define other methods controller // return object holds methods. return controllermethods; } module.exports = indexcontroller;
Comments
Post a Comment