如何从mongodb检索数据到javascript

时间:2013-09-21 18:37:53

标签: node.js mongodb mongoose

我目前是nodejs和mongodb的新手,所以请原谅我这个新手的问​​题。

我想要的是将数据从我的mongodb文件传递到运行我的迷你游戏的js文件。 我现在正在做的是使用jsp标签从我的mongodb中检索数据(我从我见过的项目中遵循这种做法,但他在他的html文件中这样做对我来说很好。对于我的情况我只是想试试运气)

var win = <%= user.win %>;
var lose = <%= user.lose %>;
var draw = <%= user.draw %>;

如何将我从mongodb获取的数据检索到javascript?

1 个答案:

答案 0 :(得分:0)

如果你有一个带有Express应用程序的Node.JS,有很多方法可以做到这一点。如果您正在使用模板引擎,则可以将数据作为HTML页面的一部分呈现在script块中(或直接将其呈现为HTML,避免脚本)。或者,您可能希望使用Ajax样式请求并将数据发送回客户端。

app.get('/api/users/:id', function(req, res) {        
  Users.findOne({ _id : req.params.id }, function(error, user) {
    if (error || !user) {
      res.send({ error: error });
    } else {
      res.send(user);
    }
  });
});

准备就绪之后,您可以使用jQueryajax功能来调用网络服务。

$.ajax({
  url: "api/users/" + userId,
}).done(function(user) {
    // here you have a  complete user object that you can use
});

您发布的代码让我觉得您正在使用模板引擎。我希望你的模板HTML文件有一个render方法:

res.render('homepage', user);

然后,在HTML中:

<script>
var win = <%= win %>;
var lose = <%= lose %>;
var draw = <%= draw %>;    
</script>

由于user对象是具有当前上下文的对象(因为它在上面的示例中作为参数传递),您可以直接直接引用user对象的属性(只是win而不是user.win)。