Node、Express、MySQLに基本的なWebアプリケーションを作成しています。ユーザーがアカウントを作成したり、他の人のアカウントを見たり、自分のプロフィールに情報を投稿したりできる、基本的なサイトです.NodeとJavaScriptを学ぶために作成しています。 私はuserlistを作成しています。データベース内のすべてのユーザーを返す素敵な関数を作成しました。ここでは、コードは次のとおりです。NodeJS/Javascript関数が未定義の場合
今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();
おかげ
--- EDIT - - 私はまた、getAllUsers()関数で定義されている行を言及する必要があると思ったが、一度返すと、もはや定義されなくなりました。
'getAllUsers'は非同期で、値を返す方法は? [これを試してください](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call?noredirect=1&lq=1) –
ハングアップ...私はこれが重複としてマークされるべきだとは思わない。私の質問は、「どうすれば非同期関数から戻ってくるのですか?」という答えは関係ありませんでしたが、質問はそうではありませんでした。 – IHazza