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

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -