반응형
Nodejs와 node-mysql 모듈을 발견하고 있습니다. 작은 문제가 있습니다. 내가 찾은 모든 튜토리얼은 데이터베이스에서 선택하는 방법을 설명하지만 행을 반환하지 않고 항상 기록하므로 내 경우에는 절대적으로 쓸모가 없습니다.
app.js 파일이 있습니다.
// Get continents
app.get("/continents", function(request, result) {
console.log("Continents : " + database.findAllContinents());
});
그리고 mysql.js 파일 :
exports.findAllContinents = function(connection) {
var connection = getConnection();
connection.query('select id, code, name from Continent', function (err, rows, fields) {
if (err) {
console.log("Error in findAllContinents : " + err)
}
return JSON.stringify(rows);
});
closeConnection(connection);
};
함수가 행을 반환하여 app.js 파일에서 사용하도록하려면 어떻게해야합니까? app.js 파일에 연결을 만들고 싶지 않습니다. DAO 레이어를 분리하고 싶습니다. 당신은 어떤 생각이 있습니까?
또한 누군가 ORM (sequelize, persistence.js ...) 대신 node-mysql을 사용하는 장단점에 대한 아이디어가있는 경우
감사
해결 방법
query ()
는 결과를 반환 할 수없는 비동기 함수입니다. 결과적으로 비동기 함수를 호출하는 모든 함수 (예 : findAllContinents
)도 마찬가지입니다.
// app.js
app.get("/continents", function(request, response) {
database.findAllContinents(function(err, results) {
if (err)
throw err; // or return an error message, or something
else
res.send(results); // as a demo, we'll send back the results to the client;
// if you pass an object to 'res.send()', it will send
// a JSON-response.
});
});
// mysql.js
exports.findAllContinents = function(cb) {
var connection = getConnection();
connection.query('select id, code, name from Continent', function (err, rows, fields) {
// close connection first
closeConnection(connection);
// done: call callback with results
cb(err, rows);
});
};
참조 페이지 https://stackoverflow.com/questions/16264162
반응형
'MySql' 카테고리의 다른 글
MySQL 데이터베이스 값에 따라 확인하도록 설정된 PHP 확인란 (0) | 2021.01.02 |
---|---|
MySQL 1 행의 CSV 입력에 잘못된 열 개수가 있습니다. 오류 (0) | 2021.01.02 |
MySQL PHP-라디오 버튼을 클릭 할 때 데이터를 MySQL로 업데이트하는 방법 (0) | 2021.01.02 |
MySQL mysql의 값을 줄이지 만 음수는 아닙니다. (0) | 2021.01.02 |
MySQL Exclude specific columns in select query in MYSQL (0) | 2021.01.02 |
댓글