Node.js、Express、MongoDB(mongoose)でアプリケーションを実行していますが、server.js
とは別のファイルにデータベース接続しようとしていますが、 connect-mongoで苦労している。express node.jsとmongooseとのセッションを宣言します
私はこれ持っていた私のserver.jsの最初の:これはアプリケーションのルートを扱う
/* jshint esversion: 6 */
'use strict';
let express = require('express');
const db = require('./app/config/db');
const routes = require('./app/routes/routes');
const users = require('./app/routes/users');
let app = express();
const conn = db.connect();
app.set('views', path.join(__dirname, 'app/views'));
app.set('view engine', 'hbs');
...
app.use('/', routes);
app.use('/users', users);
app.listen(3000);
module.exports = app;
を、およびアプリケーションサーバは、その後、私は私のプロジェクトのための次のフォルダ構造を持っていた:
myApp
|___app
|___bin
|___config
|___credentials.js
|___db.js
|___controllers
|___routes
|___views
|___node_modules
|___package.json
|___server.js
Welll insidde config folderデータベースへの接続を処理する2つのjavascriptがありましたが、credentials.jsには文字通りデータベースアクセスのための資格がありました。私は次のエラーを得た
/* jshint esversion: 6 */
'use strict';
let mongoose = require('mongoose'),
async = require('async'),
express = require('express');
const credentials = require('./credentials');
const session = require('express-session');
const MongoStore = require('connect-mongo')(session);
let db = mongoose.connection,
app = express();
exports.connect = function(done){
const connection = mongoose.connect(credentials.host, credentials.database, credentials.port, credentials.db);
db.on('error', (error =>{
console.log("Error estableciendo la conexion");
process.exit(1);
}));
db.on('open', (argv)=>{
db.db.listCollections().toArray((err, collections)=>{
collections.forEach(x => console.log(x));
});
});
/* Define sessions in MongoDB */
app.use(session({
secret: credentials.sessionSecret,
store: new MongoStore({ dbPromise: db })
}));
}
:あなたは使用して接続-モンゴを開始する方法 Error with nodemon server.js
知っていますか
その後、私の問題はdb.js内にある、次の私はあなたのファイルを表示しますこのプロジェクトの構造ですか?
ところで、credentials.jsファイルで私は私の約束のライブラリとしてブルーバードを設定しました。
事前に感謝します!
はdb.on( 'open' ...)と呼ばれていますか? –
@MananVaghasiyaこんにちは。はい、私は実際に接続が確立されているかどうかを私に知らせるconsole.logを持っていました。だから問題は何か分かりません。 –
問題は間違いなく "db"が約束されていません。あなたはmongoose.connectionが約束ですか? –