这是app.post的代码,它通过我所做的函数fs.mkdir
调用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;
});
});
但是当我尝试在同一个app.post中分配req.session.user
时,它被称为fs.mkdir,总是req.session.user
未定义。也许我应该创建一个模块来进行fs.mkdir调用?我不知道该怎么做!
答案 0 :(得分:0)
在其他模块中调用fs.mkdir
时问题得以解决,非常简单:D