从工作Node js socket io串口切换到节点express路由器如何?



我是node express的新手(很久以前开始使用node,但没有做太多),我想学习如何使用它。我正在翻看我以前的一些作品,并阅读了很多教程,但我似乎就是不能让这个工作。我有这个应用程序,从串行端口上的一些传感器读取数据,并将其发送到传感器。我想用express重新编程。我在终端读取传感器,但在ejs中没有。

old (working) app.js

var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
const { SerialPort } = require('serialport')
const { ByteLengthParser } = require('@serialport/parser-byte-length')
const port = new SerialPort({ path: 'COM4', baudRate: 9600 })
const parser = port.pipe(new ByteLengthParser({ length: 30 }))
var sensors = fs.readFileSync('views/sensors.ejs');
var app = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type':'text/html'});
res.end(sensors);
});
var io = require('socket.io').listen(app);
io.on('connection', function(data){
console.log
});
parser.on('data', function(data){
console.log(data.toString("UTF8"));
io.emit('data', data.toString("UTF8"))
});
app.listen(3000);

旧的(工作的)传感器。ejs

<script>    
var socket = io();
socket.on('data', function(data){...} 
</script>

我通过了几个快速路由教程,但我不知道如何发送io数据到路由器.

我有c/p的大部分代码从旧的app.js到新的传感器.js在路由目录,没有fs, app.listen等。我有c/p传感器。

在新的app.js我有:

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var sensorsRouter = require('./routes/senzori');
var app = express();
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')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/senzori', sensorsRouter);

索引。ejb和用户。Ejs (fetch mysql data)正在工作(express已安装并工作)

感谢

我已经找到解决办法了。如果有人和我的"知识"水平相当;需要解决方案,在这里:

我已经将读取串口移动到bin/www

在sensors.js中唯一的代码是:
router.get('/', function(req, res, next) {
res.render('sensors');
});

最新更新