在连接DB - NodeJs的函数中使用app.get

时间:2015-01-24 12:40:47

标签: javascript mysql node.js

我正在使用NodeJ和MySQL。在查看node-mysql之后,我正在使用MySQL with Node.js。现在的问题是我试图只进行一次数据库连接并在其中使用GET但它无法正常工作。 代码:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret',
});

connection.connect(function(err) {
    // connected! (unless `err` is set)
    app.get('/hello',function(req,res){
        console.log('Hello'); 
        res.send('Hi');
    });

});

但上面的代码不起作用。它没有认识到这条路线。但是在每个get函数内部建立连接都有效。 我应该做错事。有什么方法可以连接到Db一次吗?

1 个答案:

答案 0 :(得分:1)

您应将app.get的呼叫转移到文件的顶级范围。这些调用是声明性的,应该被认为更像是配置应用程序而不是应用程序的业务逻辑。在mysql文档中,如果调用connection并且尚未建立连接,则connection.query对象将自动隐式打开与数据库的连接。这听起来像你应该利用的机制。

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret',
});

app.get('/hello',function(req,res){
  console.log('Hello');
  connection.query('select * from users', function (error, result) {
    res.send('Hi');
  });
});