我是 Node JS 的新手,我正在尝试使用 connect-mongo npm 包在 mongoDB 中存储会话,一旦我添加了以下行 - 我收到一个错误:
app.use(session({
saveUninitialized: true,
resave: true,
store : new MongoStore({ // adding this will cause an error
db: 'users'
})
}));
Run Code Online (Sandbox Code Playgroud)
这是我的代码的会话部分(我使用的是 express 4.16):
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var expressValidator = require('express-validator');
var multer = require('multer');
var upload = multer({dest: './uploads'});
var flash = require('connect-flash');
var bcrypt = require('bcryptjs');
var mongo = require('mongodb');
var mongoose = require('mongoose');
var MongoStore = require('connect-mongo')(session);
var db = mongoose.connection;
session(app, mongo.initSessionStore);
app.use(session({
saveUninitialized: true,
resave: true,
store : new MongoStore({
db: 'users'
})
}));
// Passport
app.use(passport.initialize());
app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)
您尚未将 MonogDB 实例发送到MongoStore. 您发送了 string 'user',它期望数据库实例。所以它无法连接到 MonogDB。
如果您使用的是 Mongoose,您需要先连接到数据库,然后才能使用mongoose.connectionMongoStore:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
app.use(session({
saveUninitialized: true,
resave: true,
store : new MongoStore({
mongooseConnection: db
})
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |