2013-03-20 14 views
6

Witam Używam compoundjs i connect-memcached. Poniżej znajduje się treść w moim envirionment.js pliku:Węzeł js, nie zwrócono odpowiedzi podczas korzystania z connect-memcached

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); 
}); }; 

Kiedy zacznę serwer podając następujące polecenie:

NODE_ENV=production node . 

Zaczyna się dobrze i uzyskać:

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 

Kiedy żądam przez przeglądarkę, nie otrzymuję żadnej odpowiedzi.

Poniżej jest moje zawartość pliku routes.js:

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

W moim kontroler nazwami:

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

PS: Jeśli komentarz kody za pomocą connect-memcached i żądanie za pośrednictwem przeglądarki, I uzyskać odpowiedź.

Dzięki za pomoc z góry.

+0

Możesz połączyć się z tym memcached address dobrze? 'telnet 127.0.0.1 11211' – Bluu

Odpowiedz

0

spróbuj dodać nawias i config po new MemcacheStore tak, że wygląda tak:

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

(to przy założeniu, serwer memcache jest na localhost: 11212 - jeśli nie, to zmienić linię hosts do Twojego serwera nazwa hosta lub adres IP.)

0

Do sesji potrzebny jest tajny klucz. W przeciwnym razie pojawi się ten błąd.

Error: secret option required for sessions

Zakładam, że nie widzisz błędu, ponieważ pracujesz w środowisku produkcyjnym. Dodaj tajny klucz w ten sposób:

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

Ponieważ używasz localhost, nie musisz określać hosta lub portu.

Powiązane problemy