2014-09-29 19 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