6

こんにちは、compoundjs と connect-memcached を使用しています。以下は、envirionment.js ファイルの内容です。

module.exports = function (compound) {

var express = require('express');
var MemcachedStore = require('connect-memcached')(express);
var app = compound.app;

require('./mongoose').init(compound);
app.configure(function(){
    app.use(compound.assetsCompiler.init());
    app.use(express.static(app.root + '/public', { maxAge: 86400000 }));
    app.set('view engine', 'ejs');
    app.set('view options', { complexNames: true });
    app.set('jsDirectory', '/javascripts/');
    app.set('cssDirectory', '/stylesheets/');
    app.set('cssEngine', 'stylus');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.favicon());
    app.use(express.logger());
    app.use(express.cookieParser());
    app.use(express.session({secret: 'AuthenticationSecret', store: new           MemcachedStore}));        
    app.use(app.router);
}); };

次のコマンドを実行してサーバーを起動すると、次のようになります。

NODE_ENV=production node .

それはうまく始まり、私は得る:

MemcachedStore initialized for servers: 127.0.0.1:11211
AssetsCompiler Precompiling assets: coffee, styl
Compound server listening on 0.0.0.0:3000 within production environment

ブラウザ経由でリクエストしても、応答がありません。

以下は私のroutes.jsファイルの内容です:

exports.routes = function (map) {
     map.get('api/yourname','names#index')
}

私の名前のコントローラーで:

load('application');
action('index', function(req, res) {
    send({"name": "Senthil"});
});

PS: connect-memcached を使用するためのコードにコメントを付けて、ブラウザー経由で要求すると、応答が得られます。

事前にご協力いただきありがとうございます。

4

2 に答える 2

0

new MemcacheStore次のようになるように、括弧と構成を追加してみてください。

app.use(express.session({
  secret: 'AuthenticationSecret', 
  store: new MemcachedStore({
      hosts: [ '127.0.0.1:11212' ] 
  })
}));

(これは、memcache サーバーが localhost:11212 にあることを前提としています。そうでない場合は、hosts 行をサーバーのホスト名または IP に変更してください。)

于 2013-03-27T22:09:03.047 に答える
0

セッションの場合、秘密鍵が必要です。そうしないと、このエラーが発生します。

エラー:secretセッションにはオプションが必要です

本番環境で実行しているため、エラーは表示されないと思います。次のように秘密鍵を追加します。

app.use(express.session({ 
  store: new MemcachedStore,
  secret: 'secret_key'
}));

localhost を実行しているため、ホストまたはポートを指定する必要はありません。

于 2013-03-28T16:40:22.523 に答える