node.js调试串口,nodejs编写后端接口

本文目录一览:

node.js 使用serialport打开串口报错

1. 先判断在关闭原先串口 com:

if (com != null)

{

com.Close();

}

2. 然后重新new,在打开串口:

com = new System.IO.Ports.SerialPort(strComName); //strComName串口名

com.Open();

// …设置属性

// …绑定串口接收函数

node-serialport windows下怎么使用

node-serialport 是一个 Node.js 的包,用来对串口数据进行读写操作。

基本示例代码:

var SerialPort = require(“serialport”).SerialPort

var serialPort = new SerialPort(“/dev/tty-usbserial1”, {

baudrate: 57600

}, false); // this is the openImmediately flag [default is true]

serialPort.open(function (error) {

if ( error ) {

console.log(‘failed to open: ‘+error);

} else {

console.log(‘open’);

serialPort.on(‘data’, function(data) {

console.log(‘data received: ‘ + data);

});

serialPort.write(“ls\n”, function(err, results) {

console.log(‘err ‘ + err);

console.log(‘results ‘ + results);

});

}

});

罗列所有串口:

var serialPort = require(“serialport”);

serialPort.list(function (err, ports) {

ports.forEach(function(port) {

console.log(port.comName);

console.log(port.pnpId);

console.log(port.manufacturer);

});

});

串口配置:

baudRate

dataBits

stopBits

parity

rtscts

xon

xoff

xany

flowControl

bufferSize

parser

encoding

dataCallback

disconnectedCallback

platformOptions- sets platform specific options, see below.

nodejs 获取串口数据

由于项目要求,项目为(B/S)架构 ,需要在页面上读取串口数据,于是就需要nodejs了

使用 nodejs 的一个插件 :serialport

现在先做个测试demo

1、先建立测试文件夹 

2、在文件夹中安装serialport ,在文件夹下的 cmd 中输入

3、可能会出现 一个警告可用忽略

4、安装后 编写读取串口 js 文件 testport.js

5、运行 js 在文件夹下 cmd 中输入

执行成功:

可能的问题:

问题一: Flie not found

这个是电脑上没有安装串口驱动,或者虚拟串口 

可用 虚拟串口程序

建立测试串口

问题二:Port is opening

需要加入 串口属性 autoOpen:false

web实现串口调试助手

最近受朋友之托试图用web前端实现串口调试助手,一开始觉得不太有可行性,以前用过的串口调试助手都是客户端程序。觉得浏览器怎么会有调用电脑上的串口的功能呢。后来朋友找了几个资料给我,说网上有人实现,他看不懂。我看了之后恍然大悟,原来是用node。如此万能。

node 实现操作串口的模块是一个 serialport 的模块,网上一搜有很多好文,此处记录一下实现过程中遇到的一些问题以及解决方法。

一开始被忽略的问题 ,我把 node 服务搭在自己的服务器上,后来返回的串口数组全是一堆令我懵逼的数据。后来想起那是 node 读取了我的

Linux 服务器的串口,而不是用户使用的 pc。

由此引出的两个问题。第一,node 服务必须搭建在用户使用的 pc 上,因此用户使用的电脑必须有 node 环境。第二,用户 pc 一般是 windows 系统, node 的模块很多在 Linux 上很容易安装成功,在 Windows 上安装比较困难。

首先解决的是第二个问题:在Windows上安装serialport失败

解决方法: npm install –global –production windows-build-tools

参考链接1:

参考链接2:

安装好之后就可以安装 serialport 模块了。

解决第一个问题:用户电脑的 node 环境

解决方法: electron ——使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用 (官网链接: )(w3c: )

使用 electron 搭建的桌面应用可以像平常我们使用的 exe 应用程序一样直接运行,不需要搭建环境。

npm install -g electron-prebuilt //提示electron-prebuilt已经更名为electron

npm install -g electron //安装失败

使用淘宝镜像安装问题解决: cnpm install -g electron

参考链接:

解决方法: npm install -g electron-rebuild

以后每次重新运行 electron . 的时候再执行一次 “./node_modules/.bin/electron-rebuild` 对原生模块进行rebuild

参考链接:

参考链接:

cnpm install -g electron-packager //安装打包工具

electron-packager . 可执行文件的文件名 –win –out 打包成的文件夹名 –arch=x64位还是32位 –version版本号 –overwrite –ignore=node_modules

因为打包的时候执行的命令带有 –ignore=node_modules , 即不将 node_modules 里面的依赖包打包,所以在打包后的新文件中,进入resource 目录会发现 node_modules 是一个空文件夹,所以自然找不到依赖包。如果去掉打包时的命令参数 –ignore=node_modules ,则需要非常长的打包时间。我的解决方法是将原来 node_modules 文件夹中的相关的依赖包文件复制进打包后的 node_modules 中,虽然是一个比较无脑的方法,每次打包都要拖动相关文件进去,不过我备份了一个 node_modules 文件夹,下一次打包后就把备份的 node_modules 直接复制进去。

node 模块 ccap : 用于生成验证码图片,可以在 express 后台

res.send(图片) ,前端的 img 的 src设置为请求这个接口。

ccap的用法可以参考链接:

如何调试nodejs

1. 基于Nodejs内建的调试器

Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入debugger标签,当Nodejs执行到debugger标签时会自动暂停(debugger标签相当于在代码中开启一个断点)。代码如下:

var path = url.parse(req.url).pathname;

debugger;

res.writeHead(200, {‘Content-Type’: ‘text/plain’});

执行命令:node debug example.js 就可以进入调试模式。

在debug模式下,可以使用内建命令如repl去评估变量和表达式的值(如2所示)。我们也可以通过help命令来获取完整的调试命令列表。

Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),

watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version

2. 基于V8插件的调试器

Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了,网上已经有很多的文章了(具体可以参考这篇文章)。唯一要注意的是在默认情况下V8引擎支持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:/deps/v8/src/platform-posix.cc

addr.sin_family = AF_INET;

addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); — INADDR_ANY

addr.sin_port = htons(port);

然后重新编译Nodejs。

提示:

用插件来调试nodejs程序,你有时候会遇到什么connect refuse, get version failed等等错误。那么请注意你使用的ip的地址, 一般下127.0.0.1的回环地址是都工作的。如果你使用真实的ip地址,请检查防火墙设置。

3. 基于Chrome浏览器的调试器

既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能。我们需要先通过npm来安装node-inspector

npm install -g node-inspector // -g 导入安装路径到环境变量

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听Nodejs的debug调试端口。

默认情况下node-inspector的端口是8080,可以通过参数–web-port=[port]来设置端口。在启动node-inpspector之后,我们可以通过–debug或–debug-brk来启动nodejs程序。通过在浏览器输入http://[ip address]:8080/debug?port=5858,我们会得到如下的调试窗口:

这三种方法各自有优缺点,我个人比较欣赏node-inspector的方式。

具体可以参考这个帖子:

原创文章,作者:FAPZM,如若转载,请注明出处:https://www.506064.com/n/315700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FAPZMFAPZM
上一篇 2025-01-09 12:13
下一篇 2025-01-09 12:13

相关推荐

  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • Cookie是后端生成的吗?

    是的,Cookie通常是由后端生成并发送给客户端的。下面从多个方面详细阐述这个问题。 一、什么是Cookie? 我们先来简单地了解一下什么是Cookie。Cookie是一种保存在客…

    编程 2025-04-28
  • Avue中如何按照后端返回的链接显示图片

    Avue是一款基于Vue.js、Element-ui等技术栈的可视化开发框架,能够轻松搭建前端页面。在开发中,我们使用到的图片通常都是存储在后端服务器上的,那么如何使用Avue来展…

    编程 2025-04-28
  • Python接口自动化测试

    本文将从如下多个方面对Python编写接口自动化进行详细阐述,包括基本介绍、常用工具、测试框架、常见问题及解决方法 一、基本介绍 接口自动化测试是软件测试中的一种自动化测试方式。通…

    编程 2025-04-27
  • 如何解决Node.js中jwt.sign()响应过慢的问题

    本文将从多个方面探讨如何解决Node.js中jwt.sign()响应过慢的问题,给出完整的代码示例与最佳实践,帮助开发者更好地处理这个问题。 一、问题概述 在使用Node.js编写…

    编程 2025-04-27
  • 小波特掘金——从前端到后端的全栈开发之路

    本文将从小波特掘金平台的概述、前端和后端技术栈、以及实例代码等多个方面来探讨小波特掘金作为一个全栈开发工程师的必练平台。 一、平台概述 小波特掘金是一个前后端分离式的技术分享社区,…

    编程 2025-04-27
  • Jadoor门锁开发接口接入指南

    本文将从多个方面详细介绍如何将门锁接入Jadoor平台的开发接口,方便开发者们快速实现门锁远程控制、开锁记录查看等功能。 一、Jadoor门锁开发接口简介 Jadoor是一款用于密…

    编程 2025-04-27
  • 后端接口设计开发经验分享

    在受到前端某些限制或特殊需求时,后端接口的设计和开发显得尤为重要。下面从以下几个方面进行讲述。 一、命名规范 合理的命名规范可以大大提高接口的可读性和可维护性。以下是一些命名规范的…

    编程 2025-04-27
  • Python调用串口用法介绍

    本文将从以下几个方面详细阐述如何使用Python调用串口进行数据传输。 一、Python调用串口的基本知识 在使用Python调用串口之前,需要了解串口的相关知识。 串口是计算机与…

    编程 2025-04-27
  • 期货数据接口 Python:打通数字资产交易数据的关键

    本文将从以下几个方面讨论期货数据接口 Python: 一、数据接口简介 期货数据接口是指为期货从业人员提供用于获取历史、实时及未来交易数据的工具。Python是一种常用的编程语言,…

    编程 2025-04-27

发表回复

登录后才能评论