【发布时间】:2017-01-22 20:57:31
【问题描述】:
这是我的代码:
var express = require('express');
var http = require('http');
var redis = require('redis');
var url = require('url');
var client = redis.createClient().setMaxListeners(0);
var app = express();
app.set('port', 3000);
app.get('/*', function(req, res) {
var key = url.parse(req.url).pathname;
client.on('connect', function() {
console.log('connected to redis!');
});
client.get(key, function(err, reply) {
if( reply == null) {
client.set(key, 1);
client.expire(key, 300);
res.send('1');
}
else {
client.incr(key, function(err, reply) {
console.log('increment value: ' + reply);
res.sendStatus(reply);
});
}
});
});
http.createServer(app).listen(app.get('port'), function() {
console.log('listening');
});
这是我运行文件时的输出 ($ node test.js): 我在我的 ubuntu 机器上试过这个,它完美地工作。这就是我在我的mac上得到的。有人可以解释一下为什么会这样。任何帮助将不胜感激。
听 增量值:2 _http_server.js:192 throw new RangeError(`无效的状态码:${statusCode}`); ^ RangeError:无效的状态代码:2 在 ServerResponse.writeHead (_http_server.js:192:11) 在 ServerResponse._implicitHeader (_http_server.js:157:8) 在 ServerResponse.OutgoingMessage.end (_http_outgoing.js:559:10) 在 ServerResponse.send (/Users/sharath/webapps/docker/node_modules/express/lib/response.js:209:10) 在 ServerResponse.sendStatus (/Users/sharath/webapps/docker/node_modules/express/lib/response.js:346:15) 在 Command.callback (/Users/sharath/webapps/docker/test.js:24:13) 在 normal_reply (/Users/sharath/webapps/docker/node_modules/redis/index.js:714:21) 在 RedisClient.return_reply (/Users/sharath/webapps/docker/node_modules/redis/index.js:816:9) 在 JavascriptRedisParser.returnReply (/Users/sharath/webapps/docker/node_modules/redis/index.js:188:18) 在 JavascriptRedisParser.execute (/Users/sharath/webapps/docker/node_modules/redis-parser/lib/parser.js:415:12)【问题讨论】:
标签: node.js http express redis