从serialport node.js创build新对象时出错

我已经检查过这样的问题。 但我没有find任何。 如果你发现它。 只是让我知道。 我刚开始通过node.js和serialport写javascript。 请有人解释我为什么会出现这个错误?

/Applications/MAMP/htdocs/homeautomation/server.js:42 var sp = new serialPort(portName, { ^ TypeError: undefined is not a function at Object.<anonymous> (/Applications/MAMP/htdocs/homeautomation/server.js:42:10) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:901:3 

这是我的起始代码

 /* * dependencies */ var express = require('express'), server = require('http').createServer(app), io = require('socket.io').listen(server), serialPort = require('serialport').serialPort; server.listen(3000); console.log('listen on port 3000') /* * Express */ var app = express(); // serve static files from index app.configure(function(){ app.use(express.static(__dirname + '/')); }); // respon to web GET request on index.html app.get('/', function (req, res){ res.sendfile(__dirname + '/index.html'); }); /* * Serial Port Setup */ var portName = '/dev/tty.usb.serial-A501JUTF'; //var portName = '/dev/tty.usbmodem1421'; var readData = ''; //Array to hold the values read from the port var sp = new serialPort(portName, { baudRate : 9600, dataBits : 8, parity : 'none', stopBits: 1, flowControl : false, }); 

任何帮助将不胜感激。

你的代码是正确的,除了使用require('serialport')库的serialPort对象,实际上是你需要使用的SerialPort ,因此undefined is not a function你遇到undefined is not a function错误。

 var SerialPort = require("serialport") console.log(SerialPort.serialPort); // undefined console.log(SerialPort.SerialPort); // { [Function: SerialPort, ... } 

有关示例用法,请参阅文档 。