ExpressJS / Mongodb POST请求并丢失用户数据

问题描述 投票:0回答:1

我有一个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...
node.js mongodb express ejs mongojs
1个回答
0
投票

[呈现个人资料页面时,您应该传递用户数据,res.render('profile',{用户:doc})这样。

© www.soinside.com 2019 - 2024. All rights reserved.