Node, Express 및 MySQL에 기본 웹 응용 프로그램을 작성하고 있습니다. 사용자가 계정을 만들고, 다른 사람들의 계정을보고, 프로필에 정보를 게시 할 수있는 기본적인 사이트입니다. 노드와 자바 스크립트를 배우기 위해 만들었습니다. 그래서 userlist를 만들었고 데이터베이스의 모든 사용자를 반환하는 멋진 함수를 만들었습니다. 지금NodeJS/Javascript 함수는 undefined를 반환합니다.
function getAllUsers() {
var query = " \
SELECT \
id, username, email, password \
FROM \
users \
";
connection.query(query, function(err, rows) {
if (err) throw err;
return rows;
});
}
내가 여기에이 기능을 사용하고 있습니다 : 여기에 코드입니다
router.get('/list', function(req, res) {
var users;
users = getAllUsers();
res.render('user/list', {'title': 'Users', 'users': users});
});
을하지만 사용자는 정의되지 않습니다. 왜 이런거야?
여기 MySQL의 연결이 제대로 작동 확실 해요,하지만 나는 그것이 유용 단지의 경우, 연결 방법은 다음과 같습니다
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'firstnodeapp'
});
connection.connect();
감사
--- 편집 - - 나는 또한 getAllUsers() 함수에서 정의 된 행을 언급해야한다고 생각했지만 일단 반환하면 더 이상 정의되지 않습니다.
getAllUsers는 비동기이며 값을 반환하는 방법은 무엇입니까? [이 하나를보십시오] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call?noredirect=1&lq=1) –
잠시만 기다려주십시오 ... 나는 이것이 중복으로 표시되어야한다고 생각하지 않습니다. 내 질문은 "어떻게 비동기 함수에서 돌아온다"... 대답은 관련이 있지만, 질문은 아니었다 ... – IHazza