//需要的Connection.js(模块)。
var mysql = require ('mysql');
var con ;
con = mysql.createConnection ({
host : 'localhost',
user : 'root' ,
password : 'root',
database : 'mydb'
});
exports.con = con;
module.exports = con.connect ( function (err) {
if (err) throw err;
console.log("Connected!");
});
// controller.js
var connection = require('./connection'); var mysql = require('mysql');
console.log(connection.con);
var sql = "Select * from user;";
connection.con.query(sql , function (err,result) {
if(err) throw err;
console.log(result);
});
当我使用相同的查询运行connection.js时它可以工作但是当在controller.js
中使用模块时它会给我错误。
//错误代码
TypeError:无法读取未定义
的属性'con'
答案 0 :(得分:0)
做一点搜索或尝试一点点,你会得到你的答案。像这样 - How to provide a mysql database connection in single file in nodejs或者这 - Connecting to SQL Server from Nodejs
答案 1 :(得分:0)
你的第一次尝试几乎是正确的。除,
module.exports = con.connect ( function (err) {
if (err) throw err;
console.log("Connected!");
});
通过这样做,您将exports
替换为con.connect()
调用响应,该响应会覆盖以前分配的con
属性。如果你删除它,你应该没事!
var mysql = require ('mysql');
var con ;
con = mysql.createConnection ({
host : 'localhost',
user : 'root' ,
password : 'root',
database : 'mydb'
});
exports.con = con;
con.connect ( function (err) {
if (err) throw err;
console.log("Connected!");
});
供参考检查this(@ Aky_0788分享)。
答案 2 :(得分:0)
//Connection.js (module) that is require.
var mysql = require ('mysql');
var con ;
con = mysql.createConnection ({
host : 'localhost',
user : 'root' ,
password : 'root',
database : 'mydb'
});
con.connect ( function (err) {
if (err) throw err;
console.log("Connected!");
});
exports.con = con;
controller.js
var connection = require ('./connection');
var mysql = require ('mysql');
console.log(connection.con);
var sql = "Select * from user;";
connection.con.query(sql , function (err,result) {
if(err) throw err;
console.log(result);
});