当您通过" res.render"将数据发送到HTML模板时,使用Ajax获取Mongodb数据库

时间:2018-03-22 15:22:12

标签: jquery node.js ajax mongodb

我可以从此链接获取项目的JSON数据" / items"

app.get("/items", middleware.isLoggedIn, function(req, res) {
    Item.findById(req.params.id, function(err, item) {
        if(err){
            console.log(err);
        }else{
            res.render("buildings/items", {item : item}); 
        }
    });
});

我试过了:

$(document).ready(function(){
  $.getJSON("/items")
  .then(function(data){
    console.log(data);
  });
});

但它没有用。

2 个答案:

答案 0 :(得分:0)

请将路线的第一行更改为:

app.get("/items/:id", middleware.isLoggedIn, function(req, res) {

然后还将ID传递给您的API:

$(document).ready(function(){
  $.getJSON("/items/123")//Don't forget the full API address!
  .then(function(data){
    console.log(data);
  });
});

您可以找到更多信息here

答案 1 :(得分:0)

您想要使用res.json(),而不是res.render。 Res.render读取服务器上的本地文件,并具有将变量注入其中的功能,并将对象指定为参数。

如果您只是想从服务器获取JSON,那么您将使用res.json(data)

例如:

app.get('/houses/:id', (req,res,next) => {
    const {id} = req.params;
    House.findById(id)
        .then(data => {
            res.json(data)
        })
        .catch(err => {
            console.log(err)
        })