上的JavaScript RPI:GPIOCtrl不是一个函数
问题描述:
大家好,我尝试使用以下上的JavaScript RPI:GPIOCtrl不是一个函数
var gpio = require("pi-gpio");
var gpioPin = 4;
var isOpened=false;
var unlock = function(){
if(!isOpened){
/* Open the door lock */
gpio.write(gpioPin, 1, function() {
isOpened = true;
});
/*Lock door in 2 seconds*/
setTimeout(function() {
gpio.write(gpioPin, 0, function() {
isOpened = false;
});
}, 2000);}}
然后创建一个门锁如下:
var http = require('http'); var express = require('express');
var app = express();
var GPIOCtrl = require('./controller.js');
app.get('/unlock/', function(req, res){
GPIOCtrl.unlock();
});
app.listen(3000);
console.log('App Server running at port 3000');
当我运行程序我得到消息应用服务器运行在端口3000,但是当我打电话时,我收到以下消息:
TypeError: GPIOCtrl.unlock is not a function
我是什么做错了?
答
你必须export你的模块,如您controller.js
如下:
var gpio = require("pi-gpio"),
gpioPin = 4,
isOpened = false,
module.exports = {
unlock: function() {
if (!isOpened) {
/* Open the door lock */
gpio.write(gpioPin, 1, function() {
isOpened = true;
});
/*Lock door in 2 seconds*/
setTimeout(function() {
gpio.write(gpioPin, 0, function() {
isOpened = false;
});
}, 2000);
}
}
}
谢谢你,我只是改变了这一切,并获得过去的错误。现在我得到错误:针编号isn ' t有效 –
@ShanePitts是的,这是因为'GPIO 4'用于根据[引脚输出](https://pinout.xyz/) –
供电所以根据图I因为我连接到BCM 4,会想要输入7吗? –