2013-03-20 32 views
6

Xin chào, tôi đang sử dụng compoundjs và connect-memcached. Dưới đây là nội dung trong tập tin envirionment.js tôi:Nút js, không có phản hồi nào được trả về trong khi sử dụng kết nối-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); 
}); }; 

Khi tôi bắt đầu máy chủ bằng cách đưa ra các lệnh sau:

NODE_ENV=production node . 

Nó bắt đầu tốt đẹp và tôi nhận được:

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 

Khi tôi yêu cầu qua trình duyệt, tôi không nhận được bất kỳ phản hồi nào.

Dưới đây là nội dung routes.js tập tin của tôi:

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

Trong bộ điều khiển tên tôi:

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

PS: Nếu tôi nhận xét các mã cho việc sử dụng kết nối-memcached và yêu cầu thông qua trình duyệt, tôi nhận được phản hồi.

Cảm ơn sự giúp đỡ của bạn trước.

+0

Bạn có thể kết nối với địa chỉ memcached đó? 'telnet 127.0.0.1 11211' – Bluu

Trả lời

0

Hãy thử thêm ngoặc và một cấu hình sau new MemcacheStore để nó trông như thế này:

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

(Đây là giả định máy chủ memcache của bạn đang ở localhost: 11.212 - nếu không, sau đó có sự thay đổi chủ đến máy chủ của bạn tên máy chủ hoặc IP.)

0

Đối với phiên, bạn cần có khóa bí mật. Nếu không, bạn sẽ nhận được lỗi này.

Error: secret option required for sessions

Tôi giả sử bạn không thấy lỗi vì bạn đang chạy trong môi trường sản xuất. Thêm khóa bí mật như sau:

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

Vì bạn đang chạy máy chủ cục bộ, bạn không cần chỉ định máy chủ hoặc cổng.