0

経由で/models/index.jsアクセスできるファイルにある一連のデータベースクエリを高速アプリで作成しました。の関数によって返されるユーザー IDを入力しようとしています。app.jsvar express = require('express');req.session.userfindByEmail();/models/index.js

関数はfindByEmail();正常に動作しますが、その戻り値を に格納する方法がわかりませんreq.sessionreq.session.id = result.rows[0].id;「findByEmail();」に含めてみました。function, but this returns areq 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;
4

1 に答える 1