私はNode.js restifyフレームワークを使用してデータベースからデータを取得しようとしています。サーバが細かい実行されているが、私はhttp://localhost:8081/getを訪れたとき、私はこのエラーを取得:サーバが接続変数にアクセスしていないのはなぜですか?
{
"code": "InternalError",
"message": "connectionPool is not defined"
}
ここに私のコードは次のとおりです。
server.js
require('./app/core/routes.js');
routes.js
var restify=require('restify');
var fs=require('fs');
var controllers = {};
controllers_path = process.cwd() + '/app/controllers';
fs.readdirSync(controllers_path).forEach(function (file) {
if (file.indexOf('.js') != -1) {
controllers[file.split('.')[0]] = require(controllers_path + '/' + file);
}
});
var server=restify.createServer();
server.get('/get', controllers.article.printHello);
server.listen(8081, function (err) {
if (err)
console.error(err);
else
console.log('App is ready at : ' + 8081);
});
article.js
var something2=require('../core/connection.js');
something2.something();
exports.printHello= function(req, res, next){
connectionPool.getConnection(function (err, connection) {
if (err) {
res.send({
Error: err,
Message: "Can't connect Database."
});
} else {
//queries
connection.query("SELECT * FROM book", function (err, rows, fields) {
res.send({
json: rows
});
});
}
});
};
connection.js
var mysql = require('mysql');
exports.something = function() {
var connectionPool = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: 'books'
});
}
エラーが正しいようですが、 'connectionPool'は定義されていません。別のファイルで定義されていますが、それほど役に立ちませんか? – adeneo
あなたはそれを修正する方法を教えていただけますか? –
コンソールは何も言いませんか? – ZombieChowder