11

私はnodejsを使用するのは初めてで、すでにチームメートと使用しているサーバーを起動しようとしています。私はMacを使用しており、「npminstall」を使用して必要なすべてのモジュールをすでにインストールしています。現在、「express」モジュールにすでに含まれているモジュール「cookie-signature」に問題があるようです。プログラムを起動しようとしていますが、エラーは発生しませんが、localhost:3000でページを開こうとすると、次のエラーが発生します。

/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)

モジュールがサーバーリソースで使用されることはありません。エラーはフェッチされたエラーであり、リソースが何か問題を起こしている可能性があることを示しているため、「sign」関数の使用法をすでに確認しましたが、ExpressまたはExpress内の他のモジュールでのみ使用されます。私は何日もウェブを検索してきましたが、まだ解決策を見つけていません。私は何が欠けていますか?よろしくお願いします。

4

4 に答える 4

15

Express インスタンスを構成するときは、次のものが必要です。

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

cookieParser (秘密の文字列を含む) が前にあることを確認しますexpress.session()

于 2012-12-14T18:34:50.543 に答える