0
我是node.js的新手我试图执行example。当我运行node app.js
我收到这是如下图错误:TypeError:无法读取undefined属性'map'
错误
[email protected]:~/Desktop/test-projects/nodejs/example$ node app.js
info - socket.io started
/home/oneadmin/Desktop/test-projects/nodejs/example/app.js:17
io.sockets.emit('tweets', obj.results.map(function (v) { return v.text; })
^
TypeError: Cannot read property 'map' of undefined
at Request._callback (/home/oneadmin/Desktop/test-projects/nodejs/example/app.js:17:42)
at Request.self.callback (/home/oneadmin/Desktop/test-projects/nodejs/example/node_modules/request/main.js:122:22)
at Request.EventEmitter.emit (events.js:107:17)
at Request.<anonymous> (/home/oneadmin/Desktop/test-projects/nodejs/example/node_modules/request/main.js:655:16)
at Request.EventEmitter.emit (events.js:126:20)
at IncomingMessage.<anonymous> (/home/oneadmin/Desktop/test-projects/nodejs/example/node_modules/request/main.js:617:14)
at IncomingMessage.EventEmitter.emit (events.js:126:20)
at _stream_readable.js:895:16
at process._tickCallback (node.js:343:11)
app.js
var sio = require('socket.io')
, http = require('http')
, index = require('fs').readFileSync(__dirname + '/index.html')
, request = require('request')
var app = http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(index);
})
, io = sio.listen(app);
setInterval(function() {
request({
url: 'http://search.twitter.com/search.json?q=today'
}, function (err, res, data) {
var obj = JSON.parse(data);
io.sockets.emit('tweets', obj.results.map(function (v) { return v.text; }));
});
}, 2000);
io.sockets.on('connection', function (socket) {
socket.broadcast.emit('someone connected');
socket.on('some event', function() {
console.log('I got an event');
});
});
app.listen(3000);
的index.html
<!doctype html>
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
var socket = io.connect();
$(function() {
socket.on('tweets', function (tweets) {
$.each(tweets, function (i, tweet) {
$('#tweets').prepend($('<li>').text(tweet));
});
});
socket.on('someone connected', function() {
$('body').prepend('<p>Someone just connected!</p>');
});
socket.emit('some event');
});
</script>
</head>
<body>
<h1>Tweets</h1>
<ul id="tweets"></ul>
</body>
</html>
任何一个帮我删除这个错误 在此先感谢!
你在第16行收到正确的响应对象('''obj'''),但是这个obj不包含''''results'''字段。检查解析对象的结构('''console.log(obj)''') – 3y3
你正确的....当我尝试另一个网址http://json-time.appspot.com/time.json?tz =欧洲/布鲁塞尔我得到同样的错误 –