sinat_37058296
sinat_37058296
采纳率100%
2016-12-16 02:28

新人求助node.js+mongodb使用Ajax怎么部分渲染html

后台

 app.get('/delBookType',function (req,res,next) {
        var bookTypeList = '';
        var delData = {_id:req.query._id};
        bookTypeDao.delBookType(delData,function () {});
        bookTypeDao.findBookType({},{},{},function (docs) {
                        console.log(docs);
                        bookTypeList = docs;
                });
        res.send({success:'操作成功',bookTypeList:bookTypeList});
    })

前端

 $.ajax({
            url:'/delBookType',
            type:'get',
            data:{_id:idValue},
            dataType:'json',
            success:function (data) {
                alert(data.success);
            },
            error:function (jqXHR, textStatus, errorThrown) {
                alert('error ' + textStatus + " " + errorThrown);
            }
        })
  <table class="table table-striped table-hover" id="book_type_table">
        <thead>
        <tr>
            <th></th>
            <th>唯一标识</th>
            <th>图书类型名称</th>
        </tr>
        </thead>
        <tbody>
        <% bookTypeList.forEach(function(list,index){ %>
            <tr>
                <td><%= index+1 %></td>
                <td class="id_td"><%= list._id %></td>
                <td class="book_type_td"><%= list.bookTypeName %></td>
            </tr>
        <% }); %>
        </tbody>
    </table>

之前是写java的所以习惯是在删除操作之后再重新查一遍列表,但node这样好像行不通,导致最后
res.send的docs取不到值。还有一个问题是我写固定的JSON串放到bookTypeList参数里面HTML也没有覆盖之前的列表,大神求教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • wuhouchu wuhouchu 5年前

    //注意node的异步特性,这么写试试:
    app.get('/delBookType',function (req,res,next) {
    var bookTypeList = '';
    var delData = {_id:req.query._id};
    bookTypeDao.delBookType(delData,function () {});
    bookTypeDao.findBookType({},{},{},function (docs) {
    console.log(docs);
    bookTypeList = docs;
    res.send({success:'操作成功',bookTypeList:bookTypeList});
    });
    })

    点赞 2 评论 复制链接分享
  • zengfanpei zengfanpei 5年前

    楼上说的有道理,node.js异步特性,你把res.send放在回调函数里面才行,不然函数结果还没执行完,就已经send了

    点赞 评论 复制链接分享

相关推荐