2013-03-20 9 views
6

Ciao Sto usando compoundjs e connect-memcached. Di seguito è riportato il contenuto nel mio file envirionment.js:Nodo js, ​​nessuna risposta è stata restituita durante l'utilizzo di 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); 
}); }; 

Quando avvio il server dando il seguente comando:

NODE_ENV=production node . 

Si parte bene e ottengo:

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 

Quando richiedo tramite browser, non ricevo alcuna risposta.

Qui di seguito è il mio contenuto del file routes.js:

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

Nel mio controller nomi:

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

PS: Se io commento i codici per l'utilizzo di collegare-memcached e richiesta via browser, ottenere la risposta.

Grazie per il vostro aiuto in anticipo.

+0

È possibile connettersi a tale indirizzo memcached bene? 'telnet 127.0.0.1 11211' – Bluu

risposta

0

Prova ad aggiungere parentesi e una configurazione dopo new MemcacheStore in modo che appaia in questo modo:

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

(Ciò presuppone il server memcache è a localhost: 11212 - se non, quindi modificare la linea di host per il server di nome host o IP.)

0

Per le sessioni, è necessaria una chiave segreta. Altrimenti, otterrai questo errore.

Error: secret option required for sessions

Suppongo che non si veda l'errore perché si sta eseguendo nell'ambiente di produzione. Aggiungere una chiave segreta come questo:

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

Dal momento che si sta eseguendo localhost, non è necessario specificare l'host o il porto.

Problemi correlati