我是第一次使用 Express,但遇到了问题。我正在尝试修改本教程并出于我的目的,但我使用的是 Redis 而不是 MongoDB。
这是我的代码:
redisSource.js:
var redis = require ("node-redis");
RedisSource = function () {
this.r_client = redis.createClient();
this.getParents = function (circuit_id, cb) {
this.r_client.smembers('circuit.parents_of:' + circuit_id, function(err, reply){
console.log("Reply: " + reply);
cb(err, reply);
});
}
}
exports.RedisSource = RedisSource;
获取.js:
Fetch = function(app) {
var RedisSource = require ('./redisSource').RedisSource;
var redisSource = new RedisSource();
app.get('/parents/:id', function(req, res) {
redisSource.getParents(req.params.id, function (error, parents) {
console.log ("Response in Fetch main: " + parents);
res.send(parents);
});
});
app.get('/test', function (req, res) {
res.send('Hello, world!');
});
};
exports.Fetch = Fetch;
应用程序.js:
/**
* Module dependencies.
*/
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
var Fetch = require('./fetch').Fetch;
var FetchService = new Fetch(app);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
当我运行应用程序时,我得到以下信息:
GET http://ironsides.zayo.com:3000/test
> Hello, world!
这是我所期望的。但是当我尝试另一个电话时:
GET http://ironsides.zayo.com:3000/parents/12115
> [ [ 49, 53, 50, 55, 51 ], [ 49, 53, 50, 56, 56 ], [ 49, 53, 51, 48, 56 ], [ 49, 53, 51, 48, 57 ], [ 49, 53, 51, 49, 48 ], [ 49, 53, 51, 49, 49 ], [ 49, 53, 51, 50, 56 ], [ 49, 53, 51, 50, 57 ], [ 49, 53, 51, 51, 48 ], [ 49, 53, 51, 52, 49 ], [ 51, 51, 50, 54, 51 ] ]
在控制台上,我得到了这个:
GET /parents/12115 200 74ms - 530b
Reply: 15273,15288,15308,15309,15310,15311,15328,15329,15330,15341,33263
Response in Fetch main: 15273,15288,15308,15309,15310,15311,15328,15329,15330,15341,33263
我期待在控制台上看到的整数数组。相反,我得到了这些整数的 ascii 字符代码数组。我真的很困惑。我确定我错过了一些简单的东西。