0

fs.mkdirこれは、私が作成した関数によって呼び出すapp.postのコードですnewdir

app.post('/register', express.bodyParser(), function (req, res, next){

 var newu = new UserModel({});

 newu.user = req.body.nuser;
 newu.pass = req.body.npass;
 newu.mail = req.body.nmail;


 UserModel.find({ user: req.body.user }, function (err, user){

    if (user.lenght == 1) {

        res.redirect('/');

    }

    else {    

    newdir(req.body.nuser);   

    next()   

    if (err) throw err;

          newu.save(function (err, newu){

               req.session.user = newu.user;  
               res.redirect('/home')


           });

     }

  });

});

これはのコードですnewdir

function newdir (username){

    var pathu = __dirname + '/users/' + username;

    fs.mkdir(pathu, function (err){

       if (err) throw err;

    });
}

これは次のコードです/home

app.get('/home', function (req, res){

  console.log(req.session.user);

  res.send('Welcome ' + req.session.user + '!');

});

必要なすべてのapp.post/getにを割り当てることができreq.session.userます。たとえば、これでユーザーを確認するときに、req.session.userを正しく割り当てることができます。

app.post('/verify', express.bodyParser(), function (req, res){

  UserModel.find({ user: req.body.user }, function (err, user){

    if (user[0] == undefined) {

         res.redirect('/');

    }

     else{

       if (user[0].pass == req.body.pass) {

         req.session.user = user[0].user;
         res.redirect('/home');

       }

       else{

         res.redirect('/');

       }

   }

  if (err) throw err;

  });

});

しかしreq.session.user、同じapp.postでfs.mkdirと呼ばれる場所に割り当てようとすると、常にreq.session.user未定義になります。たぶん、fs.mkdirを呼び出すモジュールを作成する必要がありますか?どうしたらいいのかわからない!

4

1 に答える 1

0

この問題はfs.mkdir、他のモジュールで呼び出されると解決されます。非常に簡単です:D

于 2012-12-23T15:43:09.023 に答える