私は現在、潜在的に多くのユーザを持つモバイルアプリのnode.jsバックエンドを開発中です。しかし、node.jsを開発するのは初めてのことです。私はtutorialに続いて、mysqlプール経由でmysqlデータベースに接続する方法を説明していました。Node.jsおよびRestifyを使用したMySQL DBプール
私は単一のmysql接続を作成し、自分のルート経由でクエリを実行できます。私は、チュートリアルで説明したファイル構造を確立すると問題が発生した
:
dbConnect
-[models]
--users.js
-db.js
-server-ks
私は、MySQLデータベースの接続に関するエラーメッセージを取得していないです - 私は間違ったパスワードを入力した場合でも。
// server.js
///////////////////////////// basic setup ///////////////////////////////////
var restify = require('restify');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var db = require('./db');
var users = require('./models/users');
///////////////////////////// initilisation of the server ///////////////////////////////////
var server = restify.createServer({
name: 'testUsers',
});
server.use(restify.bodyParser({ mapParams: true }));
///////////////////////////// Säuberung der URL //////////////////////////////////////////
server.pre(restify.pre.sanitizePath());
///////////////////////////// MySQL Instanz starten //////////////////////////////////////////
db.connect(db.MODE_PRODUCTION, function (err) {
if (err) {
console.log('Unable to connect to MySQL.')
process.exit(1)
} else {
server.listen(8080, function() {
console.log('Listening on port 8080 ...')
})
}
})
///////////////////////////// implementation of the routes ///////////////////////////////////
function send(req, res, next) {
var test = users.getAll();
res.json({ test: 'Hello ' + req.params.name });
return next();
};
マイDB.jsファイルには、次のようになります。
var mysql = require('mysql'),
sync = require('async')
var PRODUCTION_DB = 'userDB',
TEST_DB = 'userDB'
exports.MODE_TEST = 'mode_test'
exports.MODE_PRODUCTION = 'mode_production'
var state = {
pool: null,
mode: null,
}
exports.connect = function (mode, done) {
state.pool = mysql.createPool({
connectionLimit: 50,
host: 'localhost',
user: 'user',
password: 'password',
database: 'userDB' // test
//mode === exports.MODE_PRODUCTION ? PRODUCTION_DB : TEST_DB
})
state.mode = mode
done()
}
exports.get = function() {
return state.pool
}
それはチュートリアルでは、MySQLのプールとのNode.jsを利用して重要な部分を免れていること、だろうか?
少なくともこの質問にお答えしていただきありがとうございます。
MySQLデータベースへのパフォーマンスの良い接続を作成するには、より良い方法が後継(?)できますか?