2016-06-28 2 views
0
промежуточного слоя разделены

У меня есть некоторые проблемы с ПО промежуточного слоя, который больше не budnled с Node.js Я сделал так же, как здесь:Node игнорирует расслоение плотной

Node js Error: Most middleware (like session) is no longer bundled with Express and must be installed separately

Но я до сих пор получил ту же ошибку: «Самый межплатформенное бла-бла-бла ...»

var express = require('express'); 
var mongoose = require('mongoose'); 
var path = require('path'); 
var bodyParser = require('body-parser'); 
var config = require('config'); 
var session = require('express-session'); 

var app = express(); 
var IS_DEV = (app.get('env') === 'development'); 
var MongoStore = require('connect-mongo')(express); 

app.use(session({ 
    secret: config.get('session:secret'), 
    key: config.get('session:key'), 
    cookie: config.get('session:cookie'), 
    store: new MongoStore({mongoose_connection: mongoose.connection}) 
})); 

установлен пакет и я вижу его в node_modules папке. И я не вижу никаких ошибок: session is undefined Что я сделал не так?

Btw же происходит с express-error-handler пакета

  • окна 8.1
  • узел 4.4.0
  • MongoDB 3.2.4
  • НПМ 2.14.20
  • выражающие 4.13.4

Быстродействие:

Error: Most middleware (like session) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware. 
[1]  at Function.Object.defineProperty.get (C:\Work\todoapp\node_modules\express\lib\express.js:99:13) 
[1]  at connectMongo (C:\Work\todoapp\node_modules\connect- mongo\src\index.js:48:43) 
[1]  at Object.<anonymous> (C:\Work\todoapp\app.js:10:42) 
[1]  at Module._compile (module.js:409:26) 
[1]  at Object.Module._extensions..js (module.js:416:10) 
[1]  at Module.load (module.js:343:32) 
[1]  at Function.Module._load (module.js:300:12) 
[1]  at Module.require (module.js:353:17) 
[1]  at require (internal/module.js:12:17) 
[1]  at Object.<anonymous> (C:\Work\todoapp\bin\www:7:11) 
[1]  at Module._compile (module.js:409:26) 
[1]  at Object.Module._extensions..js (module.js:416:10) 
[1]  at Module.load (module.js:343:32) 
[1]  at Function.Module._load (module.js:300:12) 
[1]  at Function.Module.runMain (module.js:441:10) 
[1]  at startup (node.js:139:18) 
[1]  at node.js:968:3 
[1] Program node --debug ./bin/www exited with code 1 
[1] 
+0

Какая ошибка _exact_, которую вы получаете? Он скажет вам, какое промежуточное ПО, которое вы используете, устарело. – robertklep

+0

Вот ответ – Strangerliquid

ответ

0

Поскольку вы используете Express 4, установка для connect-mongo неверен.

Оно должно быть:

var session = require('express-session'); 
... 
var MongoStore = require('connect-mongo')(session); 
              ^^^^^^^ not `express` 

См the documentation.

+0

Спасибо, что исправил эту проблему, но я получил еще один 'Ошибка: стратегия подключения не найдена на MongoStore (C: \ Work \ todoapp \ node_modules \ connect-mongo \ src \ index.js: 104: 23' – Strangerliquid

+0

@ Strangerliquid, вам, вероятно, нужно вызвать 'mongoose.connect()', прежде чем вы вызовете новый MongoStore() '([doc] (https://github.com/kcbanner/connect-mongo#re-use-a-mongoose-connection)) – robertklep

+0

C: \ Work \ todoapp \ node_modules \ мангуст \ node_modules \ MongoDB \ Lib \ server.js: 242 process.nextTick (функция() {бросить эээ;}) Ошибка: подключение ECONNREFUSED 127.0.0.1: 28018 at Object.exports._errnoException (util.js: 870: 11) при экспорте. _exceptionWithHostPort (util.js: 893: 20) на TCPConnectWrap.afterConnect [в OnComplete] (net.js: 1057: 14) узла Program --debug ./bin/www возбужденном с кодом 1 Думаю, это потому что mongoose уже подключен - он использует то же значение порта, что и скопировал настройки здесь: магазин: новый MongoStore ({mongooseConnection: mongoose.connection}) – Strangerliquid

 Смежные вопросы

  • Нет связанных вопросов^_^