与mongoose,express和EJS的奇怪行为

时间:2013-02-06 22:16:07

标签: node.js mongodb express mongoose

这是猫鼬和快递代码:

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

    });
   });

});

这是EJS模板中的输出:

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

我有一个console.log,返回imagen对象。就一次。但我收到了这个:

{ 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="/users/<%= user._id %>/<%= photo.name %>" alt=""/>

我得到两次imagen对象,第一次定义,但第二次的值为null,所以我得到一个错误。为什么?为什么我可能会收到两个请求,这真的很奇怪。 对此有任何解决方案......?

谢谢你的进步!

1 个答案:

答案 0 :(得分:0)

我认为这两个请求 /user/id/usr/id/photoname执行相同的代码。错误转储中的行错误也不是您之前复制的错误。