您可以创建一个数据库包装器,然后需要它。节点的require每次都返回模块的相同实例,因此您可以执行连接并返回处理程序。从Node.js文档中:
如果它将解析为相同的文件,则对require(’foo’)的每次调用都将获得完全相同的返回对象。
您可以创建
db.js:
var mysql = require('mysql');var connection = mysql.createConnection({ host : '127.0.0.1', user : 'root', password : '', database : 'chat'});connection.connect(function(err) { if (err) throw err;});module.exports = connection;然后在您的中
app.js,您只需要它。
var express = require('express');var app = express();var db = require('./db');app.get('/save',function(req,res){ var post = {from:'me', to:'you', msg:'hi'}; db.query('INSERT INTO messages SET ?', post, function(err, result) { if (err) throw err; });});server.listen(3000);这种方法使您可以抽象出任何连接详细信息,包装您想要在
db整个应用程序中公开和需要的其他任何内容,同时由于节点需求的工作原理而保持与数据库的一个连接:)



