Skip to content

Instantly share code, notes, and snippets.

@toygame
Last active September 12, 2020 08:02
Show Gist options
  • Save toygame/aa27f0eb9832ff618b93d140abc9613e to your computer and use it in GitHub Desktop.
Save toygame/aa27f0eb9832ff618b93d140abc9613e to your computer and use it in GitHub Desktop.
const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
//------------MQTT section------------//
const mqtt = require('mqtt') // import mqtt connect
// mqtt configuration
const mqttConfig = {
host: 'localhost',
port: 1883,
username: '',
password: ''
}
const client = mqtt.connect(mqttConfig) // create connection to mqtt broker
client.on('connect', function () {
client.subscribe('tasmota/#', function (err) {
if (!err) {
client.publish('tasmota', 'Hello from application mqtt')
}
})
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
})
//------------------------------------//
const indexRouter = require('./routes/index');
const app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// Route endpoint
indexRouter(app,client)
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment