【发布时间】:2016-03-18 18:47:17
【问题描述】:
在我当前的项目中,我们有一个 HTML 页面。在 HTML 页面中,我们有几个按钮,例如我们有温度传感器、湿度传感器、警报等按钮。当我们点击一个按钮而不是在后端它会运行相应的 Node.js 文件,例如当我们点击温度传感器按钮比它将运行位于同一路径中的 TemperatureSensor.js 文件。 HTML页面的代码如下所示:
TemperatureSensor.js代码如下:
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://test.mosquitto.org:1883');
var NUM_SAMPLE_FOR_AVG = 5;
var numSample = 0;
var tempCelcius = 0;
var currentAvg = 0;
client.subscribe('tempMeasurement');
client.on('message', function(topic, payload) {
if (topic.toString() == "tempMeasurement") {
sensorMeasurement = JSON.parse(payload);
console.log("tempValue is " + sensorMeasurement.tempValue);
if (numSample <= NUM_SAMPLE_FOR_AVG) {
numSample = numSample + 1;
if (sensorMeasurement.unitOfMeasurement == 'F') {
tempCelcius = ((sensorMeasurement.tempValue - 32) * (5 / 9));
} else {
tempCelcius = sensorMeasurement.tempValue;
}
currentAvg = parseFloat(currentAvg) + parseFloat(tempCelcius);
if (numSample == NUM_SAMPLE_FOR_AVG) {
currentAvg = currentAvg / NUM_SAMPLE_FOR_AVG;
var avgTemp = {
"tempValue" : parseFloat(currentAvg),
"unitOfMeasurement" : sensorMeasurement.unitOfMeasurement
};
client.publish('roomAvgTempMeasurement', JSON
.stringify(avgTemp));
console.log("Publishing Data roomAvgTempMeasurement ");
numSample = 0;
currentAvg = 0;
}
}
}
});
问题是当我们点击浏览器中的 TemperatureSensor 按钮时,它显示错误:TemperatureSensor.js:1 Uncaught ReferenceError: require is not defined。如果 TemperatureSensor 的内容是console.log("Hello"),则它会在浏览器的控制台中显示Hello。如何提供依赖??为什么我们需要在终端运行温度传感器、湿度传感器等而不是在终端中运行它们,例如,如果我们想在终端中运行温度传感器,我们必须写sudo node TempeatureSensor.js .这需要更多的手动工作,因此为了减少这项工作,我们需要这种 HTML 页面。关于问题如何解决??
【问题讨论】:
标签: javascript html node.js