2014-09-29 45 views
0

我使用节点连接到数据库的猫鼬给错误,但是当我运行的代码,它提供了错误为:mongoose.connect中的NodeJS

Uncaught TypeError: undefined is not a function 
    (anonymous function) server.js:13 

下面是我在服务器上运行的代码。 JS

var express= require(['express']); 
var bodyParser = require(['body-parser']); 
var cookieParser = require(['cookie-parser']); 
var expressSession = require(['express-session']); 
var mongoose = require(['mongoose']); 

var mongoStore = require(['connect-mongo'])({session: expressSession}); 
require(['./models/users.js']); 
mongoose.connect('mongodb://localhost/userregistration'); 
var app = express(); 
app.engine('.html', require('ejs').__express); 
app.set('views',__dirname + '/views'); 
app.set('view engine','html'); 

app.use(bodyParser()); 
app.use(cookieParser()); 
app.use(expressSession({ 
    secret: 'SECRET', 
    cookie: {maxAge:60*60*1000 }, 
    store: new mongoStore({ 
     db: mongoose.connection.db, 
     collection: 'sessions' 
    }) 

})); 

require('./routes')(app); 
app.listen(80); 

看日志,该代码在被赋予错误:

mongoose.connect('mongodb://localhost/userregistration'); 
+1

你有没有尝试建立一个数据库连接端口号? – 2014-09-29 09:27:41

+0

@WaqasAhmed:它不是关于端口号...它mongoose.connect给出错误说,它的undefined ..... – kawade 2014-09-29 13:14:21

回答

0

我想你忘了要求明示,sessio ñ。

这里是例子

ExpressSession

app.use(express.session({ 
    secret: 'SECRET', 
    cookie: {maxAge:60*60*1000 }, 
    store: new mongoStore({ 
    db: mongoose.connection.db, 
    collection: 'sessions' 
    }) 
})); 
+0

我已经使用npm install -g express-session -save安装了快速会话,但仍然是问题存在... – kawade 2014-09-29 07:34:33

+0

嗨,看着错误跟踪,错误来自“mongoose.connect('mongodb:// localhost/userregistration');”。 – kawade 2014-09-29 09:25:21

0

connect-mongo已使用猫鼬连接一个特殊的选项,请尝试使用:

store: new mongoStore({ 
    mongoose_connection: mongoose.connection, 
    collection: 'sessions' 
}) 

如果仍不能解决问题,请发布更多信息(如完整的堆栈跟踪和您正在运行的代码,因为t软管require的看起来不正确)。

+0

嗨,看错误跟踪,错误是在“mongoose.connect('mongodb:// localhost/userregistration');” – kawade 2014-09-29 08:11:57

0
// Replace 'db' by 'mongooseConnection ' 

app.use(expressSession({ 
secret: 'SECRET', 
cookie: {maxAge: 60 * 60 * 1000}, 
store: new mongoStore({ 
    mongooseConnection: mongoose.connection, 
    collection: 'sessions' 
    }) 
})); 
+0

请解释你的答案,不要只发布代码,所以OP可以从中学习 – EBH 2016-08-21 22:14:23