0

In my db library file, I have:

exports.slave = ->
  connection = mysql.createConnection
    host: config.database.slave.host
    user: config.database.slave.username
    password: config.database.slave.password
    database: config.database.slave.database

  connection.connect()

  return connection

which returns connection if I run db.slave().query("WHATEVER") and executes properly. How can I extend and export a prototype, so I can just use: db.slave.query("WAHTEVER") instead?

4

1 回答 1

1

The standard node convention is to export a single object. This object can whatever you want

var config = {
  database: ...
}
var mysql = require('mysql')
function setupSlave() {
  var connection = mysql.createConnection
    host: config.database.slave.host
    user: config.database.slave.username
    password: config.database.slave.password
    database: config.database.slave.database
  connection.connect()
  return connection
}
var slave = setupSlave()
module.exports = slave

If you instead want to export slave() instead of slave you can do that as well

var config = {
  database: ...
}
var mysql = require('mysql')
function setupSlave() {
  var connection = mysql.createConnection
    host: config.database.slave.host
    user: config.database.slave.username
    password: config.database.slave.password
    database: config.database.slave.database
  connection.connect()
  return connection
}
var slave = setupSlave()
module.exports = slave()
于 2013-04-19T14:30:44.467 回答