2016-07-08 53 views
0

我想知道爲什麼在標籤中未定義req.session.username >>> DOESNT WORK < < <雖然它在標籤中工作>>>這是可行的< < <。我帶了req作爲我的模塊的參數,但似乎我應該做別的事情?該/ AJAX路線通過Ajax調用訪問,它並設置會話變量>>>這並不工作< < <in node.js with express req.session在我的require()模塊中是undefined


//index.js file 

var express = require('express'); 
var router = express.Router(); 

var app = express(); 

var functions = require('../public/javascripts/functions.js'); 

router.post('/ajax', function(req, res , next){ 

    var username = req.param("username"); 
    var password = req.param("password"); 
    var operation = req.param("operation"); 

    else if (operation === "validate") 
    { 




     async.series([ 

      function() 
      { 

       functions.validate(username, password, req); 

      } 

     ], function(err,result) 
     { 

      if (err) 
       return console.log(err); 

      console.log(result); 

     }); 
     //req.session.username = "yaryar"; >>>THIS DOES WORK<<< 

    } 

    var strings = ["rad", "bla", "ska"] 

    console.log('body: ' + JSON.stringify(req.body)); 
    console.log("AJAX RECEIVED"); 
    res.send(strings); 
}); 

module.exports = router; 

functions.js文件:

module.exports = { 

    validate: function(username, password, req) { 

     var url = 'mongodb://localhost'; 
     var MongoClient = require('mongodb').MongoClient; 
     var assert = require('assert'); 
     var ObjectId = require('mongodb').ObjectID; 

     MongoClient.connect(url, function(err, db) 
     { 
      assert.equal(null, err); 
      console.log("Connected correctly to server."); 

      var cursor = db.collection('users').find({username : username}); 

      cursor.each(function(err,doc,req) 
      { 

       assert.equal(err, null); 

       if (doc != null) 
       { 
         console.log("user found: " + doc.username); 

           req.session.username = "ttyy"; // >>>DOESNT WORK<<< 
           return true 

       } 
       else 
       { 
         console.log("user not found"); 
         return false; 
       } 
      }); 
       //db.close(); 
     }); 
    }  
}; 

回答

0

你正在覆蓋請求cursor.each(function(err,doc,req)更改爲cursor.each(function(err,doc,arr),它會工作