尝试使用唯一索引保存mongoose文档时,节点服务器崩溃
我有一个集合,其中有一个领域作为一个独特的领域。
var ProductSchema = new mongoose.Schema({ code: {type:String, required:true}, name: {type:String, default:""} }); ProductSchema.index({ code: 1}, { unique: true });
当我用一个已经存在的代码创build一个新文档时,服务器崩溃而不是通过callback返回一个错误:
module.exports.create = function (params, callback){ var product = new ProductModel(params); product.save(function(error){ console.log(error); callback(error); }); }
这(崩溃)预期的行为或mongoose应通过callback返回一个错误,而不是崩溃?
这是我用相同的代码保存第二个文档时得到的错误:
[..path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:245 throw message; ^ TypeError: Cannot read property '0' of undefined at [...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/collection/core.js:114:55 at [...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1132:7 at [...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:1846:9 at Server.Base._callHandler ([...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/base.js:445:41) at [...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:478:18 at MongoReply.parseBody ([...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5) at null.<anonymous> ([...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:436:20) at EventEmitter.emit (events.js:95:17) at null.<anonymous> ([...path]/server/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:201:13) at EventEmitter.emit (events.js:98:17)
http://mongoosejs.com/docs/api.html#model_Model-save
直接在产品的保存上放置一个error handling程序:
ProductModel.on('error', function(){..});