我有一个NodeJS应用程序,我正在尝试向我的用户个人资料页面添加一个'请求票证'功能。用户提交了一个在mongodb中创建新票证的请求,但是当我提交请求并尝试重新加载个人资料页面时,我丢失了用户数据。 (即未定义user.username)。
//User Open Ticket post
router.post('/openTicket', function(req,res,){
var userDescription = req.body.userDescription
var requestDevice = req.body.requestDevice;
var phonenumber = req.body.phonenumber;
req.checkBody('requestDevice', 'Device is required').notEmpty();
req.checkBody('userDescription', 'description is required').notEmpty();
var errors = req.validationErrors();
if(errors){
console.log('Request has errors...');
res.render('profile', {
errors: errors,
requestDevice: requestDevice,
userDescription: userDescription,
});
} else {
var phonenumber = phonenumber;
var newTicket = {
id: Math.random().toString(36).substring(2),
requestDevice: requestDevice,
userDescription: userDescription,
openDate: new Date(),
closeDate: "",
techComment: "",
status : "open",
}
db.users.update( {phonenumber: phonenumber }, {$set: {"tickets": [newTicket] } }, false, function(err, doc) {
if(err){
res.send(err);
} else {
console.log('ticket Added...');
res.render('profile');
}
});
}
});
和我的控制台
ReferenceError: C:\Users\Mikey\Desktop\itspot\views\profile.ejs:54
52| <div class="w3-display-container w3-center w3-mobile" style="height: 300px">
53| <div class="w3-display-middle w3-card-2 w3-center" style="margin-top: 25px; width: 35%" >
>> 54| <h4 class="w3-center">Welcome <%= user.username %> !</h4>
55| <p class="w3-center"><img src="../img/avatar.png" class="w3-circle" style="height:106px;width:106px" alt="Avatar"></p>
56| <hr>
57| <p> <i class="fa fa-home fa-fw w3-text-theme"></i> Zip: <%= user.zipCode %> </p>
user is not defined
at eval (eval at compile (C:\Users\Mikey\Desktop\itspot\node_modules\ejs\lib\ejs.js:633:12), <anonymous>:11:26)
at returnedFn (C:\Users\Mikey\Desktop\itspot\node_modules\ejs\lib\ejs.js:668:17)
at tryHandleCache (C:\Users\Mikey\Desktop\itspot\node_modules\ejs\lib\ejs.js:254:36)
at View.exports.renderFile [as engine] (C:\Users\Mikey\Desktop\itspot\node_modules\ejs\lib\ejs.js:485:10)
at View.render (C:\Users\Mikey\Desktop\itspot\node_modules\express\lib\view.js:135:8)
at tryRender (C:\Users\Mikey\Desktop\itspot\node_modules\express\lib\application.js:640:10)
at Function.render (C:\Users\Mikey\Desktop\itspot\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (C:\Users\Mikey\Desktop\itspot\node_modules\express\lib\response.js:1012:7)
at C:\Users\Mikey\Desktop\itspot\routes\users.js:50:8
at Layer.handle [as handle_request] (C:\Users\Mikey\Desktop\itspot\node_modules\express\lib\router\layer.js:95:5)
Device Added...
[呈现个人资料页面时,您应该传递用户数据,res.render('profile',{用户:doc})这样。