Javascript 解决;“下一步未定义”;

Javascript 解决;“下一步未定义”;,javascript,node.js,express,model-view-controller,Javascript,Node.js,Express,Model View Controller,每当我试图访问/catalog/bookinstance/:id/delete时,我总是遇到“ReferenceError:next未定义”。我花了将近2个小时试图排除故障,但没有结果:( 关于哪一部分出错有什么建议吗 catalog.js /* GET request to delete BookInstance. */ router.get('/bookinstance/:id/delete', book_instance_controller.bookinstance_delete_get

每当我试图访问
/catalog/bookinstance/:id/delete
时,我总是遇到
“ReferenceError:next未定义”
。我花了将近2个小时试图排除故障,但没有结果:(

关于哪一部分出错有什么建议吗

catalog.js

/* GET request to delete BookInstance. */
router.get('/bookinstance/:id/delete', book_instance_controller.bookinstance_delete_get);

// POST request to delete BookInstance
router.post('/bookinstance/:id/delete', book_instance_controller.bookinstance_delete_post);
bookinstanceController.js

var BookInstance = require('../models/bookinstance');
var Book = require('../models/book');

var async = require('async');
// Display BookInstance delete form on GET
exports.bookinstance_delete_get = function(req, res, next) {
    BookInstance.findById(req.params.id)
    .populate('book')
    .exec(function(err, bookinstance){
      if(err){
        return next(err);
      }
      res.render('bookinstance_delete', {title: 'Delete BookInstance', bookinstance: bookinstance})
    });
};

// Handle BookInstance delete on POST
exports.bookinstance_delete_post = function(req, res, next) {
    //req.checkBody('bookid', 'Book ID must exist').notEmpty();
    BookInstance.findByIdAndRemove(req.body.id, function deleteBookInstance(err){
      if(err){
        return next(err);
      }
      res.redirect('/catalog/bookinstances');
    });
};
bookinstance_delete.pug

  h1= title

  p #[strong Do you really want to delete this BookInstance?]

  div(style="margin-left:20px")

    p #[strong ID]: #{bookinstance._id}

    p #[strong Title:] 
      a(href=bookinstance.book.url) #{bookinstance.book.title}

    p #[strong Imprint:] #{bookinstance.imprint}

    p #[strong Status:] 
      if bookinstance.status=='Available'
        span.text-success #{bookinstance.status}
      else if bookinstance.status=='Maintenance'
        span.text-danger #{bookinstance.status}
      else
        span.text-warning #{bookinstance.status} 

    if bookinstance.status!='Available'
      p #[strong Due back:] #{bookinstance.due_back_formatted}

  form(method='POST' action='')
    div.form-group
      input#id.form-control(type='hidden',name='id', required='true', value=bookinstance._id )

    button.btn.btn-primary(type='submit') Delete
bookinstance.js

var mongoose = require('mongoose');
var moment = require('moment');

var Schema = mongoose.Schema;

var BookInstanceSchema = Schema({
  book: {type: Schema.ObjectId, ref: 'Book', required: true},
  imprint: {type: String, required: true},
  status: {type: String, required: true, enum: ['Available', 'Maintenance', 'Loaned', 'Reserved'], default: 'Maintenance'},
  due_back: {type: Date, default: Date.now},
});

BookInstanceSchema
.virtual('url')
.get(function(){
  return '/catalog/bookinstance/' + this._id;
});

BookInstanceSchema
.virtual('due_back_formatted')
.get(function(){
  return moment(this.due_back).format('MMMM Do, YYYY');
});

module.exports = mongoose.model('BookInstance', BookInstanceSchema);

您能否在
bookinstanceController
中登录
next
,并确认在这两个函数中都未定义它?您尝试访问
/catalog/bookinstance/:id/delete
,但路由是
router.get('/bookinstance/:id/delete')
,尝试访问
/bookinstance/:id/delete
@medettleukibiliuly很可能路由器安装在
/catalog
上。您的代码看起来很好。结果是我在我的bookinstance\u detail.pug文件'a(href='bookinstance.url'+'/delete')中犯了一个小错误。删除图书实例'应该是'a(href=bookinstance.url+'/delete'))谢谢大家!您能在
bookinstanceController
中登录
next
并确认这两个函数中都没有定义吗?您尝试访问
/catalog/bookinstance/:id/delete
但路由是
router.get('/bookinstance/:id/delete'))
,尝试访问
/bookinstance/:id/delete
@medettleukibiliuly很可能路由器安装在
/catalog
上。您的代码看起来很好。结果是我在我的bookinstance\u detail.pug文件'a(href='bookinstance.url'+'/delete')中犯了一个小错误。删除图书实例'应该是'a(href=bookinstance.url+'/delete'))谢谢大家!