nodejs의 아키텍처를 어떻게 조합하는지에 대한 기본적인 이해가 부족하여 아래 코드가 문제없이 실행될 수 있다고 생각합니다. 나는 간단한 앱을 배치 할 것이다. 마지막 질문에 도움을 줄 수 있습니까?Express의 지속성 데이터베이스 풀링과 같은 Node의 require() 문제는 어떻게 해결됩니까?
주 : 나는 https://github.com/mysqljs/mysql
node app.js
명령 줄에서 실행되는 MySQL의 패키지를 사용하고 있습니다.
const Express = require("express");
const Path = require("path");
const app = Express();
// Require controller modules
var book_controller = require('../controllers/bookController');
var author_controller = require('../controllers/authorController');
router.get('/book', book_controller.books_get);
router.get('/author', book_controller.authors_get);
app.listen(5000, function(){
console.log("Server started on port 5000");
});
bookController
내부 :
var getConnection = require('../config/mysql');
// Display list of all books
exports.book_get = function(req, res) {
getConnection(function(err, con) {
query = 'SELECT * FROM books';
con.query(query, function(err, result) {
if (err) throw err;
con.release();
res.render('page/authors', { result:result});
});
})
};
authorController
내부 :
var getConnection = require('../config/mysql');
// Display list of all books
exports.authors_get = function(req, res) {
getConnection(function(err, con) {
query = 'SELECT * FROM authors';
con.query(query, function(err, result) {
if (err) throw err;
con.release();
res.render('page/books', { result:result});
});
})
};
내부
app.js
내부
이있다
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit: 100,
connectTimeout: 5000,
acquireTimeout: 5000,
queueLimit: 30,
host: 'localhost',
user: '',
password: '',
database: '',
multipleStatements: true,
});
var getConnection = function(callback) {
pool.getConnection(function(err, connection) {
if (err) return callback(err);
callback(err, connection);
});
};
pool.on('acquire', function(connection) {
console.log('Connection %d acquired', connection.threadId);
});
module.exports = getConnection;
그건 레이아웃입니다. 다음은 질문입니다.
- 어떻게 동일한 종속성이 필요한 별도의 파일이 상호 작용합니까? Books와 Author 컨트롤러는 모두 서로 다른 사용자로부터 mysql 풀을 요구하고 액세스해야합니다. MySQL 오브젝트의 새로운 복사본이 인스턴스화 되었습니까?
- 풀의 상태가 다음 연결을 유지하는 방법은 무엇입니까?