节点进程不退出猫鼬索引

时间:2018-07-02 19:17:44

标签: javascript node.js mongoose

通过运行node my-script.js,此代码可以正确退出:

const mongoose = require('mongoose')

const FooSchema = new mongoose.Schema({
    name: {type: String, required: true}
})

const Foo = mongoose.model('Foo', FooSchema)

mongoose.connect('mongodb://localhost/foo')
mongoose.disconnect()

但这不是:

const mongoose = require('mongoose')

const FooSchema = new mongoose.Schema({
    name: {type: String, required: true}
})
FooSchema.index({name: 'text'})

const Foo = mongoose.model('Foo', FooSchema)

mongoose.connect('mongodb://localhost/foo')
mongoose.disconnect()

错误是:

  

MongoError:拓扑已被破坏

这里唯一的区别是我使用了index功能。有没有办法在其他任何事情之前“执行” index函数以便干净地退出?

侧面说明:我想确保在此行之后:FooSchema.index({name: 'text'})实际上已创建索引。

1 个答案:

答案 0 :(得分:0)

您收到的错误是由于执行写操作时断开连接引起的。

如果您等待+---+----+-------+----------+-----+------+ | id|name|testing|avg_result|score|active| +---+----+-------+----------+-----+------+ | 1| sam| null| null| null| True| | 2| Ram| True| 0.05| 10| False| | 3| Ian| False| 0.01| 1| False| | 4| Jim| False| 1.2| 3| True| +---+----+-------+----------+-----+------+ 事件断开连接,则应该解决此问题:

'index'