【发布时间】:2019-08-21 01:53:45
【问题描述】:
我无法将 mysql 连接文件从父文件导入另一个文件以建立数据库连接。
如果查询写在同一个文件中,我可以连接到数据库,如果我尝试在另一个文件中点击相同的查询,那么我会收到“TypeError:connection.query is not a function”错误。无法访问连接对象的任何功能。
这是我的 server.js 文件:
var express = require('express');
var cors = require('cors');
var mysql = require('mysql');
app = express(),
app.use(cors()),
port = process.env.PORT || 3001;
bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
config = {
host: 'localhost',
user: 'root',
password: '',
database: '<DB name>'
}
var connection = mysql.createConnection(config);
connection.connect(function(err){
if (err){
console.log('error connecting:' + err.stack);
}
console.log('connected successfully to DB.');
});
var routes = require('./api/routes/routes'); //importing route
routes(app);
console.log('todo list RESTful API server started on: ' + port);
app.listen(port);
module.exports= connection;
这是我的 api.js 文件:
'use strict';
var connection = require('../../server.js');
connection.query ('select * from <table name>', function(error, results){
if (results){
console.log(results);
}
else{
console.log(error);
}
});
or
exports.get=function(req,res){
console.log(req.query.printerModel);
console.log('inside get function');
connection.query('select * from inkdetails', function(error, results){
if (results){
res.status(200).send(inkdetails)
console.log(results);
}
else{
res.status(400).send(error)
console.log(error);
}
});
};
【问题讨论】:
-
你的代码输出''todo list RESTful API server started on: 3001' before 'connected to DB.'?
-
你能在
api.js文件中记录connection是什么吗?在您注册路由和处理程序之前,似乎尚未导出连接对象。