Nodejs模块不能按预期在不同的设备上工作
我正在使用twitter streaming api
& johnny-five
与其他模块http
, express
和socket.io
与arduino uno
我的脚本在笔记本电脑上工作正常。 但我的作品将在平板电脑上。 我有两个平板电脑,两个都有不同的反应。 在hp omni
平板电脑上我收到以下错误
另外我有端口COM3
arduino-uno
连接,但它显示设备COM1
连接
据我所知,这个错误是由于standard firmata
firmata在arduino中没有升级引起的。 我已经上传这个程序,它在笔记本电脑上工作正常
在Acer
平板电脑我没有收到任何错误程序开始完美罚款没有任何问题,但我没有收到微博与twitter streaming api
我已经跨过多次检查,每次运行时都会在笔记本电脑上运行得非常好,但给出了tablets
两个不同的问题
这是我正在使用的代码
var Twitter = require('twitter'); var five = require("johnny-five"); var express = require('express') , app = express() , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server); server.listen(8080); // routing app.use(express.static(__dirname + '/http')); app.use(function (req, res, next) { res.setHeader('Access-Control-Allow-Origin', "http://"+req.headers.host+':80'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); next(); } ); var client = new Twitter({ consumer_key: 'abc', consumer_secret: 'abc', access_token_key: 'abc', access_token_secret: 'abc' }); var board = new five.Board(); board.on("ready", function() { this.pinMode(5, five.Pin.OUTPUT); this.pinMode(10, five.Pin.INPUT); //Ask to visit url console.log("Visit http://localhost:8080"); var randomHashtag = Math.floor((Math.random() * 10000) +1); var count = 0;//Initialize counter io.sockets.on('connection', function (socket) { console.log('Ready to recieve tweets');//Prints Message when Socket.io is ready to recieve tweets io.emit('stream',{number:randomHashtag});//Send random no when socket initzilize client.stream('statuses/filter', {track: '#tweetMe'}, function(stream) { stream.on('data', function(tweet) { if(tweet.text.search(randomHashtag) > 0){ count++;//Increment pending tweets randomHashtag = Math.floor((Math.random() * 10000) +1); io.emit('stream',{number:randomHashtag}); board.digitalWrite(5,1); console.log(tweet.text); } else{ console.log("Tweet Without random No"); } }); stream.on('error', function(error) { throw error; }); }); }); });
正如你所说,它适用于其他设备完全正常,也设法解决与其他平板电脑的问题我可以想到的可能的原因是损坏的nodejs
或其他modules
安装
尝试清理Nodejs
和所有modules
重新安装。 可能是你的模块中有一些问题,而不是在你的代码中。
你有以下问题的另一个原因nodejs
维护两个不同的版本都以不同的方式处理模块的安装。
使用您在笔记本电脑中使用的相同版本。
我通过手动告诉johnny-five
在我的arduino连接的端口上解决了HP OMNI
平板电脑的问题,正如官方文档
new five.Board({ port: "COM3" });//FOR WINDOWS ONLY
此外,我不得不重新安装所有模块,使其工作
(虽然仍然不与macros基平板电脑)