3

私はすぐに使用できる Expressjs アプリを使用しており、ノード 0.8.2 を使用しています。ローカルでは問題なく動作しますが、Cloud Foundry にプッシュすると次のエラーが表示され、どこからデバッグを開始すればよいかわかりません。これは構成の問題または依存関係の問題が原因であると想定していますが、どうすればよいかわかりません。

Express 500 TypeError: Object # has no method 'randomBytes' Object.uid (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/utils.js:122:17) で MemoryStore.generate (/var/ vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/session.js:203:27) 生成時 (/var/vcap/data/dea/apps/) Object.session [ハンドルとして] (/var/vcap/data/dea/apps/dwgapp1- 0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/session.js:290:7) 次の (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/app/lib/middleware/session.js:290:7) Express/node_modules/connect/lib/proto.js:190:15) オブジェクトで。cookieParser [ハンドルとして] (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5) 次の (/var /vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) Object.methodOverride [ハンドルとして] (/var/vcap/data /dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5) 次 (/var/vcap/data/dea/apps/dwgapp1-0 -690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) マルチパート (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3expressd380e/app/node_modules) /connect/lib/middleware/multipart.js:62:61)61)61)5) 次に (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) で Object.methodOverride [ハンドルとして]次の (/var/vcap/data/マルチパート (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b3804ed/385b44b3804ed) app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61)5) 次に (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) で Object.methodOverride [ハンドルとして]次の (/var/vcap/data/マルチパート (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b3804ed/385b44b3804ed) app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61)methodOverride [ハンドルとして] (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5) /vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) マルチパート (/var/vcap/data/dea/apps/dwgapp1 -0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61)methodOverride [ハンドルとして] (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5) /vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) マルチパート (/var/vcap/data/dea/apps/dwgapp1 -0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61)15) マルチパート (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61) で15) マルチパート (/var/vcap/data/dea/apps/dwgapp1-0-690016dc6c7142f385b44b144d3d380e/app/node_modules/express/node_modules/connect/lib/middleware/multipart.js:62:61) で

    var express = require('express')
       , routes = require('./routes')
       , user = require('./routes/user')
       , http = require('http')
       , path = require('path');

    var app = express();

    app.configure(function(){
       app.set('port', process.env.VCAP_APP_PORT || 3000);
       app.set('views', __dirname + '/views');
       app.set('view engine', 'ejs');
       app.use(express.favicon());
       app.use(express.logger('dev'));
       app.use(express.bodyParser());
       app.use(express.methodOverride());
       app.use(express.cookieParser('your secret here'));
       app.use(express.session());
       app.use(app.router);
       app.use(require('stylus').middleware(__dirname + '/public'));
       app.use(express.static(path.join(__dirname, 'public')));
    });

    app.configure('development', function(){
       app.use(express.errorHandler());
    });

    app.get('/', routes.index);
    app.get('/users', user.list);

    http.createServer(app).listen(app.get('port'), function(){
       console.log("Express server listening on port " + app.get('port'));
    });
4

2 に答える 2

2

vmc logs app-nameエラーメッセージが表示された状態で、を使用できます。

私はあなたと同じ質問に遭遇しました。

理由は、デフォルトの nodejs バージョンが私のアプリには古すぎるためです。

ただvmc delete app最初に、

最新のnodejsで新しいものを作成し、vmc push app-name --runtime node08

于 2012-10-27T13:47:20.447 に答える
2

この問題は、express の依存関係である connect によって引き起こされたようです。私は最初、ノード 0.8.8 で実行される Express を使用してアプリを作成し、CF は 0.8.2 を使用していました。ローカルでは違いがないように見えましたが、Cloud Foundry にデプロイすると、このエラーが発生しました。

Node 0.8.2 を最初から実行する、まったく新しいアプリを作成しました。これで問題は解決したようです。

于 2012-10-05T19:25:29.627 に答える