2013-02-06 5 views
1

이것은 몽구스와 특급 코드 :이상한 행동, 표현 및 EJS

app.get('/:user/:id', function (req, res){ 

    usermodel.findOne({ user: req.params.user }, function (err, user){ 

    var imagen = user.imagen.id(req.params.id); 

    console.log(imagen); 

    res.render('photo.ejs', { 

     user: user, 
     photo: imagen 

    }); 
    }); 

});

<img src="https://stackoverflow.com/users/<%= user._id %>/<%= user.avatar %>" class="img-circle" alt=""> 

나는 CONSOLE.LOG을했습니다의 된 imagen 객체를 반환 :

는 그리고 이것은 EJS 템플릿의 출력입니다. 딱 한번. 그러나 나는 이것을받습니다 :

{ title: 'Slimes', 
    name: 'slimes.png', 
    author: 'Mrmangado', 
    description: 'A collection of Slimes', 
    index: 1, 
    views: 7, 
    fav: 0, 
    path: '/users/5112b8da8a63aae76f000005/', 
    _id: 5112b91a8a63aae76f000006, 
    comments: [], 
    date: Wed Feb 06 2013 23:12:10 GMT+0300 (MSK), 
    tags: [ '#Slimes', '#DQ', '#Sprites' ] } 
null 
TypeError: /root/views/photo.ejs:92 

    >> 1|  <img src="https://stackoverflow.com/users/<%= user._id %>/<%= photo.name %>" alt=""/> 

저는 imagen 객체를 두 번 얻습니다. 첫 번째는 정의되지만 두 번째 시간은 null 값을 가지므로 오류가 발생합니다. 왜? 정말 그 URL에 두 가지 요청을하는 것이 이상합니다. 이것에 대한 해결책은 무엇입니까?

감사의 말씀!

답변

0

두 요청 모두 /user/id/usr/id/photoname이 동일한 코드를 실행한다고 생각합니다. 또한 오류 덤프에서 오류가 발생한 행은 이전에 복사 한 행이 아닙니다.