我是新手。我用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(){})更新了我的脚本,但它不起作用。
答案 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