NodeJS – Error secreto requerido

soy nuevo trabajando con nodejs y sólo estoy tratando de iniciar un servidor que ya está trabajando con mis compañeros de equipo.
Estoy en un mac y ya instalado todos los módulos requeridos con “npm install”.
Ahora parece haber un problema con el módulo de “cookie-firma”, que ya está incluido en el “express”del módulo. Estoy tratando de iniciar el programa y me da ningún error, pero cuando intento abrir la página en localhost:3000, me sale el siguiente error:

/Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/cookie-signature/index.js:19
  if ('string' != typeof secret) throw new TypeError('secret required');
                                       ^
TypeError: secret required
    at Object.exports.sign (/Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/cookie-signature/index.js:19:40)
    at ServerResponse.end (/Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/connect/lib/middleware/session.js:267:34)
    at ServerResponse.EventEmitter.emit (events.js:93:17)
    at ServerResponse.res.writeHead (/Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/connect/lib/patch.js:73:36)
    at ServerResponse._implicitHeader (http.js:932:8)
    at ServerResponse.OutgoingMessage.end (http.js:767:10)
    at res.end (/Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/connect/lib/middleware/session.js:282:13)
    at /Users/kevinglaap/Sites/Uni/git/node_server/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:73:11
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

El módulo no se usa nunca en el servidor de recursos. Ya he comprobado el uso de la “señal”-función, porque el error es una traída de error, que indica que los recursos pueden estar haciendo algo mal, pero sólo es utilizado por expreso o otros módulos dentro de expresar.
He estado buscando en la web desde hace unos días y no he encontrado una solución todavía. Lo que me estoy perdiendo? Gracias de antemano por su ayuda.

Usted está utilizando un módulo que requiere expresar la sesión para ser utilizada? Usted está utilizando la aplicación.uso(express.período de sesiones(..)) en tu servidor?
Sí, aquí está el código: var app = express(); app.configurar(function() { […] de la aplicación.uso(express.período de sesiones({‘secreto’: crypto.randomBytes(64)}));
Me imagino que tiene diferentes versiones en algunos de los módulos de sus compañeros de equipo. ¿Qué pasa si tus compañeros de equipo la actualización de sus módulos con “npm install” en el director del proyecto?
Yo no puedo probar que antes del martes, pero he intentado cambiando el uso de la randomBytes función a una determinada palabra secreta y ahora todo parece funcionar, pero, por supuesto, a mis compañeros quieren que se mantenga un secreto aleatorio.
¿Intenta el registro de lo devuelve crypto.randomBytes(64) ?

OriginalEl autor Kevin Glaap | 2012-12-14

2 respuestas

  1. 12

    A la hora de configurar la instancia de express de su necesidad esta:

    app.use(express.cookieParser('your secret here'));
    app.use(express.session());

    Asegurarse de que su cookieParser (con su Cadena de secreto) es antes de la express.session()

    Gracias! Esto parece funcionar: app.uso(express.cookieParser(“+crypto.randomBytes(64)+”)); app.uso(express.período de sesiones());
    esta respuesta es outdateeeed
    Se aplica a cualquier persona que esté utilizando [email protected]
    Cualquier persona que busca una solución mediante [email protected] echa un vistazo github.com/expressjs/session#example
    No de trabajo. Error: la Mayoría de middleware (como período de sesiones) ya no está incluido con Express y debe ser instalado por separado.

    OriginalEl autor Ben Evans

  2. 1

    con la actualización de la versión express:

    var app = express();
    app.use(require('express-session')({ secret: 'keyboard cat', resave: true, saveUninitialized: true }));

    OriginalEl autor Vishwadeep Kapoor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *