TypeError: connection.model is not a function in mongoose-auto-increment
TypeError: connection.model is not a function in mongoose-auto-increment
我尝试连接 mongodb。但我做不到。我以为 [autoIncrement.initialize] 是问题,但我无法解决问题。这是我的代码。
const mongoose = require('mongoose');
const autoIncrement = require('mongoose-auto-increment');
require('dotenv').config();
mongoose.Promise = global.Promise;
const connect = mongoose.connect(process.env.MONGODB_URI);
autoIncrement.initialize(connect);
这里是错误回溯:
/Users/loo/Projects/example-app/node_modules/mongoose-auto-increment/index.js:27
throw ex;
^
TypeError: connection.model is not a function
at Object.exports.initialize (/Users/loo/Projects/example-app/node_modules/mongoose-auto-increment/index.js:10:34)
at Object.<anonymous> (/Users/loo/Projects/example-app/app.js:8:15)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
如您阅读 this link
中的示例
你会看到这个:
var connection = mongoose.createConnection("mongodb://localhost/myDatabase");
autoIncrement.initialize(connection);
其实.connect
和.createConnection
是不同的东西。
由于 documentation here 表示:
Mongoose creates a default connection when you call
mongoose.connect()
.
You can access the default connection using
mongoose.connection
.
这意味着 mongoose.connect
没有 return 连接,您可以使用 mongoose.connection
获得该连接。
解决方案:
mongoose.connect(process.env.MONGODB_URI, {useNewUrlParser: true})
.then(() => {
console.log('Connected to DB');
})
.catch(error => {
console.error('Connection to DB Failed');
console.error(error.message);
process.exit(-1);
});
autoIncrement.initialize(mongoose.connection);
或者您可以在此处创建连接:
const connection = mongoose.createConnection(process.env.MONGODB_URI);
autoIncrement.initialize(connection);
我尝试连接 mongodb。但我做不到。我以为 [autoIncrement.initialize] 是问题,但我无法解决问题。这是我的代码。
const mongoose = require('mongoose');
const autoIncrement = require('mongoose-auto-increment');
require('dotenv').config();
mongoose.Promise = global.Promise;
const connect = mongoose.connect(process.env.MONGODB_URI);
autoIncrement.initialize(connect);
这里是错误回溯:
/Users/loo/Projects/example-app/node_modules/mongoose-auto-increment/index.js:27
throw ex;
^
TypeError: connection.model is not a function
at Object.exports.initialize (/Users/loo/Projects/example-app/node_modules/mongoose-auto-increment/index.js:10:34)
at Object.<anonymous> (/Users/loo/Projects/example-app/app.js:8:15)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:238:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
如您阅读 this link
中的示例你会看到这个:
var connection = mongoose.createConnection("mongodb://localhost/myDatabase");
autoIncrement.initialize(connection);
其实.connect
和.createConnection
是不同的东西。
由于 documentation here 表示:
Mongoose creates a default connection when you call
mongoose.connect()
.You can access the default connection using
mongoose.connection
.
这意味着 mongoose.connect
没有 return 连接,您可以使用 mongoose.connection
获得该连接。
解决方案:
mongoose.connect(process.env.MONGODB_URI, {useNewUrlParser: true})
.then(() => {
console.log('Connected to DB');
})
.catch(error => {
console.error('Connection to DB Failed');
console.error(error.message);
process.exit(-1);
});
autoIncrement.initialize(mongoose.connection);
或者您可以在此处创建连接:
const connection = mongoose.createConnection(process.env.MONGODB_URI);
autoIncrement.initialize(connection);