ちょっと基本的に私はWebアプリケーションを書いています、私はapp.jsでevrythingを処理するのが好きではなかったので、ページ関数を処理するevent.jsという1つのスクリプトを作成し、それらをエクスポートするだけです.データベースから何かをリストする必要がありますが、それほどエレガントではないことはわかっていますが、イベントとコールバックを試してみました...これが私のコードで、呼び出しなどは何もありません。この場合、最初は何もロードできません。彼は価値観を持っています..
//app.js
app.get('/page',events.page);
//event.js
exports.page = function(req,res,next) {
if (name == 'Accounting'){
if (req.session.ulevel == 0) {
name='Index';
mg='notauthed';
show='nothing';
} else {
show='accinfo';
name == 'Accounting';
console.log('asdasdasdinfoooo');
pg.connect(connectionString, function(err, client) {
client.on('drain', client.end.bind(client));
client.query('SELECT * FROM newtest5 where id=$1',['uid']
, function(err,results){
dlogin=results.rows[0].username;
did=results.rows[0].id;
dpwd=results.rows[0].password;
demail=results.rows[0].email;
dregdate=results.rows[0].regdate;
drule=results.rows[0].rights;
dmoney=results.rows[0].balance;
// move render here
});
});
res.render('index', {
title: name,
dplay:show,
dbname:dlogin,
dbid:did,
dbpwd:dpwd,
dbrule:drule,
dbregd:dregdate,
dbemail:demail,
username:req.session.user,
uid:req.session.uid,
user:req.session.user,
right:req.session.ulevel,
content:contents[name],
msg:msgs[mg]
}), console.log('data:'+dlogin);
}
}
}
私のオブジェクトは、このコードで名前が会計されているときです。ロードされた情報を1ページレンダリングするのが好きです。以前は機能していませんでした。イベントjsから、基本的には非常にうまく機能していますが、問題は..データベースの読み取りが完了する前にレンダリングが実行されていることです..どういうわけか、データの読み取りが終了するまでレンダリングを待機させてから、レンダリングを実行する必要があります。