2016-04-26 12 views
0

この質問を書く前に、私はほぼ同じエラーについて他のものを読んでいましたが、その質問は2013-2014年からで、私はElementaryOS(Ubuntu 14.04)を使用しています。Connect-mongoエラー:モジュール 'mongodb/node_modules/bson'を見つけることができません

私はOpenShiftサーバーにアップロードされるnodejsアプリケーションでセッションを管理したいので、セッション保存の代替案を検索したところ、connect-mongoが見つかりました。私はこのセッションをmongodbコレクションに保存しています。私はまた、事はある、express-sessionsを使用しています私は、このエラーメッセージが表示されましたアプリを実行するとき:

[email protected]:~/Documents/ic/server$ node server 
module.js:341 
    throw err; 
^

Error: Cannot find module 'mongodb/node_modules/bson' 
    at Function.Module._resolveFilename (module.js:339:15) 
    at Function.Module._load (module.js:290:25) 
    at Module.require (module.js:367:17) 
    at require (internal/module.js:16:19) 
    at Object.<anonymous> (/home/hugo/Documents/ic/server/node_modules/express-sessions/node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js:8:16) 
    at Module._compile (module.js:413:34) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 
    at Module.require (module.js:367:17) 
    at require (internal/module.js:16:19) 
    at Object.<anonymous> (/home/hugo/Documents/ic/server/node_modules/express-sessions/node_modules/mongoose/lib/types/objectid.js:18:16) 
    at Module._compile (module.js:413:34) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 

を私はセッションやストレージ、それらを使用して新しいので、私は本当に何が起こっているのか分からないし、どのように私のセッションストレージを正しく設定してください。私は本当にいくつかの助けが必要です、誰かが私にこれを修正する方法を教えてくれればとても感謝しています。ここ は私package.json依存関係です:あなたがそれを必要とする場合

var express = require('express'), 
    bodyParser = require('body-parser'), 
    helmet = require('helmet'), 
    methodOverride = require('method-override'), 
    sessions = require('express-sessions'), 
    mongoose = require('mongoose'), 
    MongoStore = require('connect-mongo/es5')(sessions); 

// Rutas de la plataforma 
var toHome = require('./routes/Home'), 
    toVideos = require('./routes/Video'), 
    toUsers = require('./routes/User'), 
    toCourses = require('./routes/Course'), 
    toRedirects = require('./routes/Redirects'); 

var connection_string = '127.0.0.1:27017/e3'; 
    if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){ 
     connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" + 
     process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + 
     process.env.OPENSHIFT_MONGODB_DB_HOST + ':' + 
     process.env.OPENSHIFT_MONGODB_DB_PORT + '/' + 
     process.env.OPENSHIFT_APP_NAME; 
    } 

    mongoose.connect("mongodb://"+connection_string); 

    var db = mongoose.connection; 
    db.on('error', function(){ 
     console.error.bind(console, 'Conection error to db:'); 
    }); 
    db.on('open', function() { 
     console.log('Conected to mongodb'); 
    }); 

module.exports = function(app){ 
    app.use(bodyParser.urlencoded({extended:true})); 
    app.use(bodyParser.json()); 
    app.use(methodOverride('_method')); 
    app.use(express.static('public')); 
    app.use(helmet()); 
    app.set('view engine','pug'); 

    app.use(sessions({ 
     secret:"23Ir892UdRHoi1rN891", 
     resave:false, 
     saveUninitialized:false, 
     store: new MongoStore({ 
      url:connection_string, 
      ttl: 24 * 60 * 60 
     }) 
    })); 


    // Routing 
    app.use('/',toRedirects); 
    app.use('/platform',toHome); 
    //app.use('/platform/video',toVideos); 
    //app.use('/platform/profile', toUsers); 
    //app.use('/platform/course', toCourses); 
} 

そして、私のserver.jsファイル:

"engines": { 
    "node": ">= 0.6.0", 
    "npm": ">= 1.0.0" 
    }, 
    "dependencies": { 
    "body-parser": "^1.15.0", 
    "connect-mongo": "^1.1.0", 
    "express": "^4.13.4", 
    "express-sessions": "^1.0.5", 
    "helmet": "^1.3.0", 
    "method-override": "^2.3.5", 
    "mongoose": "^4.4.12", 
    "pug": "^2.0.0-alpha6" 
    }, 
    "private": true, 
    "main": "server.js", 
    "devDependencies": { 
    "gulp": "^3.9.1", 
    "gulp-autoprefixer": "^3.1.0", 
    "gulp-concat": "^2.6.0", 
    "gulp-image": "^1.3.1", 
    "gulp-jshint": "^2.0.0", 
    "gulp-rename": "^1.2.2", 
    "gulp-sass": "^2.3.1", 
    "gulp-sourcemaps": "^2.0.0-alpha", 
    "gulp-uglify": "^1.5.3" 
    } 

そして、ここでは私のconfigurate.jsファイル、セットアップミドルウェア、ルートやDB接続だ

var express = require('express'), 
    app = express(), 
    models = require('./config/models'), 
    Configure = require('./config/configure'); 

Configure(app); 

// Página principal 
app.get('/', function(req,res){ 
    res.render('index'); 
}); 


var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080; 
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'; 

app.listen(server_port,server_ip_address); 

答えて

-1

こんにちはノードモジュールを再インストールするには、以下の手順に従ってください。

  • NPMは
  • NPMキャッシュクリーン
  • のrm -rf node_modules
  • NPMは

が私たちを知ってみましょうインストール-gノード-GYPをインストールする場合は、あなたのための作業。

1

あなたはこのモジュールをインストールしていないと思います。

npm install connect-mongodb-session --save 

これで問題が解決されます。

関連する問題