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'))谢谢大家!