Nodejs模块不能按预期在不同的设备上工作

我正在使用twitter streaming apijohnny-five与其他模块httpexpresssocket.ioarduino 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基平板电脑)