2015-05-04 51 views
0

我正在嘗試使用serialport.js,即使只是在此刻引起運行時錯誤TypeError: undefined is not an object (evaluating 'stream._ansicursor')serialport.js undefined ansi stream

var React = require('react') 
var SerialPort = require('serial port') 

這樣做的上下文是一個react應用中,所以其正從jsx編譯。我不知道這個錯誤是怎麼發生的或者是如何發生的,查看錯誤中給出的代碼來自這個來自串口port.js的代碼。

/** 
    * Creates a Cursor instance based off the given `writable stream` instance. 
    */ 

    function ansi (stream, options) { 
     if (stream._ansicursor) { 
      return stream._ansicursor 
     } else { 
      return stream._ansicursor = new Cursor(stream, options) 
     } 
    } 
    module.exports = exports = ansi 
+0

這是在什麼情況下運行? React在瀏覽器中運行。我不熟悉serialport.js,但在瀏覽器中運行是沒有意義的。你正在做一個web應用程序? – dannyshaw

+0

耶在瀏覽器中,我可以這樣做嗎? – chris

回答

0

您嘗試使用的serialport包在nodejs流上運行,這意味着它需要在nodejs上下文中的服務器上運行。

根據你想要用串口包做什麼,如果你想繼續爲這個任務使用一個基於React的網絡用戶界面,你需要分離出串口操作並使用一個API編寫一個API nodejs框架。我建議像ExpressJS一樣。

通過這種方式,您可以將請求發送到將在服務器上執行serialport任務的API url,並返回用React編寫的Web應用程序可以與之交互的JSON反饋。

+0

它使用包'browser-serialport.js'工作 – chris