类型错误:未定义不是函数节点JS
TypeError: undefined is not a function Node JS
我是JavaScript的新手,我正在运行一个非常基本的代码,但遇到了麻烦。代码如下
我的服务.js
var http = require('http');
var express = require('express');
var app = express();
var gpioControl = require('./GPIOController');
app.get('/pressUp/', function (req, res){
console.log("Pressed Up");
gpioControl.upButtonPress();
});
app.get('/pressDown/', function (req, res){
console.log("Pressed Down");
gpioControl.downButtonPress();
});
app.listen(3000);
console.log("The server is running on port 3000");
GPIOController.js
var upButtonPress = function ()
{
console.log ("UP Button has been pressed!");
}
var downButtonPress = function()
{
console.log ("Down Button has been pressed!");
}
我得到的错误如下:
TypeError: undefined is not a function
at C:'Users'mehroz'Desktop'Rasberry Pi Automation'MyService.js:11:14
at Layer.handle [as handle_request] (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'layer.js:82:5)
at next (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'route.js:110:13)
at Route.dispatch (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'route.js:91:3)
at Layer.handle [as handle_request] (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'layer.js:82:5)
at C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'index.js:267:22
at Function.proto.process_params (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'index.js:321:12)
at next (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'index.js:261:10)
at expressInit (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'middleware'init.js:23:5)
at Layer.handle [as handle_request] (C:'Users'mehroz'Desktop'Rasberry Pi Automation'node_modules'express'lib'router'layer.js:82:5)
如果GPIOController.js是一个节点模块(看起来像是这样),它需要使用CommonJS模式。 话虽如此,您应该将 GPIOController 中的 var 声明更改为导出。您的函数名称在这里声明。
所以, var upButtonPress = function(){} 会变成
exports.upButtonPress = function(){}
然后,它将像您在 MyService.js 中使用它一样工作。
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 如何在动态创建的节点上绑定函数
- 如何检查DOM节点是否继承自构造函数
- 如何发送作为节点请求响应函数中的代码块的响应
- 从节点中的回调函数返回值
- 如何在节点模块中从命令行运行函数
- 以后添加的节点不会附加到 jQuery UI 函数
- 节点模块对象范围:在所有函数之间共享一个对象
- 节点.js子进程中的运行函数
- 节点 js 在启动时调用函数一次
- 节点JS中的函数调用
- “require”关键字在节点红色函数节点中不起作用
- 类型错误:对象不是函数+节点JS
- 如何从函数节点内部使变量全局.js
- 如何调用导出函数(节点.js/续集)
- 在执行完所有当前计划的回调后调用函数(节点)
- 异步阻塞从函数节点.js中的对象返回变量
- 类型错误:未定义不是函数节点JS
- “套接字”类型错误上缺少错误处理程序:任务不是函数 - 节点.js异步.js
- 链接异步函数节点.js蓝鸟猫皮