我的 flex 搜寻服务运作良好。我正在使用mongoosastic在Elastic Search中插入

这是我使用的代码

var mongoose = require('mongoose')
, mongoosastic = require('mongoosastic')
, Schema = mongoose.Schema

var User = new Schema({
name: String
, email: String
, city: String
})

var userModel=mongoose.model("userModel",User)

User.plugin(mongoosastic)

mongoose.connect("mongodb://localhost/myapp" ,function(err) {
if (err) throw err;

var user=new userModel()
user.name="Abhay"
user.save(function(err,user){
    console.log("err is ",err)
    console.log("user is ",user)
})
})

这会产生此错误
/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:757
catch(err) { process.nextTick(function() { throw err}); }
^
TypeError: undefined is not a function
at model.postSave (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoosastic/lib/mongoosastic.js:398:9)
at EventEmitter. (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/lib/schema.js:749:17)
at EventEmitter.emit (events.js:129:20)
at model.Document.(anonymous function) as emit
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/lib/model.js:268:13
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/lib/model.js:127:7
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/lib/collection.js:449:5
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/lib/collection.js:593:5
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:457:9
at resultHandler (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/lib/bulk/unordered.js:409:5)
at /home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:756:13
at Callbacks.emit (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:95:3)
at null.messageHandler (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:243:23)
at Socket. (/home/abhay/Documents/project/webstrom/node/personal/mongo-node-elastic/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:262:22)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
at Socket.Readable.push (_stream_readable.js:126:10)
at TCP.onread (net.js:538:20)

注意如果我注释或删除User.plugin(mongoosastic),则文档成功保存到集合中

最佳答案

您只需要将User.plugin(mongoosastic)移动到mongoose.model()行上方

...
var User = new Schema({
name: String
, email: String
, city: String
})

User.plugin(mongoosastic)          <---- move this line up here

var userModel=mongoose.model("userModel",User)
...

08-28 03:41