节点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' }));
由于您正在运行本地主机,您不需要指定主机或端口。