経由で/models/index.js
アクセスできるファイルにある一連のデータベースクエリを高速アプリで作成しました。の関数によって返されるユーザー IDを入力しようとしています。app.js
var express = require('express');
req.session.user
findByEmail();
/models/index.js
関数はfindByEmail();
正常に動作しますが、その戻り値を に格納する方法がわかりませんreq.session
。req.session.id = result.rows[0].id;
「findByEmail();」に含めてみました。function, but this returns a
req is not defined` エラー。
require
ファイル内の単純なステートメントを見落としていますか、それともモジュール/models/index.js
にアクセスするための別のトリックがありますか?req.session
/models.index.js
以下から関連するコードを含めました。
/models.index.js:
var pg = require('pg');
function findByEmail(email){
pg.connect(function(err, client, done) {
if(err) {
console.log('pg.connect error');
throw err;
}
client.query('BEGIN', function(err) {
if(err) {
console.log('client.query BEGIN error');
return rollback(client, done);
}
process.nextTick(function() {
var text = "SELECT * FROM users WHERE email = $1";
client.query(text, [email], function(err, result) {
if(err) {
console.log(err);
return rollback(client, done);
}
console.log(result);
console.log(result.rows);
console.log('id: ', result.rows[0].id);
req.session.id = result.rows[0].id;
done();
});
});
});
});
}
module.exports.pg = pg;
exports.findByEmail = findByEmail;