my elastic search service working fine . And I am using mongoosastic for inserting in Elastic Search
This is the code I use
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)
})
})
This produce this error
/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)
Note If I comment or remove User.plugin(mongoosastic)
then Document save into collection successfully
You simply need to move User.plugin(mongoosastic)
above the mongoose.model()
line
...
var User = new Schema({
name: String
, email: String
, city: String
})
User.plugin(mongoosastic) <---- move this line up here
var userModel=mongoose.model("userModel",User)
...