【问题标题】:NodeJS / Mongoose / Express - Unable to delete item from db on clickNodeJS / Mongoose / Express - 单击时无法从数据库中删除项目
【发布时间】:2016-03-24 15:55:03
【问题描述】:

我目前能够添加和读取数据库,但是当我单击在视图中创建的删除链接时,我收到错误“无法获取 /destroy/”。

这是我的一些代码:

var Person = require('.././schema.js');
var mongoose = require('mongoose');

exports.create = function(req, res) {
new Person({
empName: req.body.empName,
role: req.body.role,
wage: req.body.wage,
update: Date.now()
}).save(function(err, people){
people.details();
res.redirect('/');
});
};

exports.destroy = function(req, res) {
Person.findById( req.params.id, function ( err, people) {
people.remove( function( err, people) {
  console.log("Destroyed: " + people + " successfully!");
  res.redirect( '/' );
});
});
};

查看:

<h3><%= title %></h3>
<blockquote>
 <ul>
 <% for(var i = 0; i < peopleList.length; i++) { %>
  <li class="litext"><strong>Name:</strong> <%= peopleList[i].empName %><strong>Role:</strong> <%= peopleList[i].role %> <strong>Wage:</strong> <%= peopleList[i].wage %></li>
  <span class="litext"><a href="/destroy/<%= peopleList._id %>" title="Delete Person">Delete</a></span>
<% }; %>
</ul>
</blockquote>

来自 app.js:

var port = process.env.port || 4000; 
var express = require('express');
var bodyParser = require('body-parser');
var forms = require('./controllers/forms');
var mongoose = require('mongoose'); // for mongoDB
var Person = require('./schema.js'); // db schema
var app = express();

app.use('/public', express.static(__dirname + '/public')); 


app.set('view engine', 'ejs');


app.use(bodyParser());
app.get('/destroy/:id', forms.destroy);
app.post('/submit', forms.create);

我没有包含来自控制器的任何代码,我认为这没有必要,因为我认为问题在于路由。

【问题讨论】:

    标签: node.js mongodb express mongoose ejs


    【解决方案1】:

    看起来您在调用 destroy 方法时没有传递 ID。替换以下行:

    <a href="/destroy/<%= peopleList._id %>
    

    <a href="/destroy/<%= peopleList[i]._id %>"
    

    【讨论】:

    • 如果它解决了您的问题,请将其标记为答案。
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多