节点js,使用connect-memcached时不返回任何响应

您好我正在使用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和请求的代码,我会得到响应。

感谢您的帮助提前。

尝试在new MemcacheStore之后添加括号和configuration,使其看起来像这样:

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

(假设你的memcache服务器在localhost:11212 – 如果没有,那么把hosts行改为你服务器的主机名或IP。)

对于会议,你需要一个秘密密钥。 否则,你会得到这个错误。

错误:会话需要secret选项

我假设你没有看到错误,因为你在生产环境中运行。 添加一个这样的密钥:

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

由于您正在运行本地主机,您不需要指定主机或端口。