无法在nodejs和mongodb中获取data-id

时间:2018-03-05 17:22:13

标签: node.js mongodb

我是新手。我用mongodb创建了我的第一个nodejs项目。我得到一些错误。 实际上,“data-id”属性无法在数据库中获取id字符串。有我的index.pug。

        if (data.length)
      each item in data
        tr
          td #{item['_id']}
          td #{item['name']}
          td #{item['email']}
          td
            a.btn.btn-primary.editlink(href='javascript:void(0)', data-id = '#{item["_id"]}') Edit
            |   
            a.btn.btn-danger(href='/delete?id=#{item["_id"]}', onclick='return confirm("Are you sure ?")') Delete

script.
  $(function() { 
    $('.editlink').on('click', function(){
      var id = $(this).data('id');
      $.ajax({
        method: "GET",
        url: "/fetchdata",
        data: { id: id },
      }).done(function( data ) {
        $('#id').val(data[0]['_id']);
        $('#name').val(data[0]['name']);
        $('#email').val(data[0]['email']);            
        $("#subbtn").val('Edit');
        $('#form1').attr('action', '/edit');
      });
    });
  }); 

我的index.js

router.get('/', function(req, res, next) {
  MongoClient.connect(dburl, function(err, client) {
  if(err) {  console.log(err); throw err;  }
  data = '';
  var db = client.db(dbname);
  db.collection('products').find().toArray(function(err, docs){
  if(err) throw err;
  res.render('index', {data: docs});
  console.log(docs);      
  client.close();
   });
 });
});
router.get('/fetchdata', function(req, res, next) {
  var id = req.query.id;
  MongoClient.connect(dburl, function(err, client) {
  if(err) {  console.log(err); throw err;  }
  data = '';
  var db = client.db(dbname);        
  db.collection('products').find({_id: new     mongodb.ObjectId(id)}).toArray(function(err, docs){
  if(err) throw err;
  res.send(docs);
  client.close();
  });
});
});

我使用$(document).ready(function(){})更新了我的脚本,但它不起作用。

1 个答案:

答案 0 :(得分:0)

我认为问题出在Edit部分

您必须设置data-id= item['_id']

作为

 td
            a.btn.btn-primary.editlink(href='javascript:void(0)', data-id = item["_id"]) Edit
            |   
            a.btn.btn-danger(href='/delete?id='+#{item["_id"]}, onclick='return confirm("Are you sure ?")') Delete