本文作者:ivweb 程柳锋 导语 通常而言,Node.js的应用场景有前后端分离、海量web页面渲染服务、命令行工具和桌面端应用等等。...本篇文章选取CLI(Command Line Tools)子领域,来谈谈Node.js编写CLI的实践,让CLI切实解决实际工程问题。 Why Node.js?...常用的用来编写CLI的语言有 python, ruby, perl, Node.js等等。 为什么选取Node.js作为CLI的语言编写工具呢?...看个demo 注: 此处的Logo使用的是figlet这个npm包, demo地址 npm关联CLI的基本原理 如何让Node.js编写的包可执行?...判断process.platform === ‘win32’,优先使用HOME变量,否则使 用USERPROFILE变量;建议使用osenv这个包。
怎么用Node.js创建HTTPS服务器? HTTPS已经无所不在,作为开发者,我们经常需要访问或者使用HTTPS服务器。本文重要介绍了如何用 Node.js 在本地创建一个HTTPS开发服务器。...HTTPS服务器.jpg 要创建一个HTTPS服务器,你需要两样东西:SSL证书和Node.js内置的https模块。 我们先从SSL证书开始。...将这些文件放在与Node.js服务器文件相同的目录中。...如下是一个hello world示例(https和http模块之间最大的区别是options参数): 2.jpg 要启动https服务器,请在终端上运行 node app.js(这里,app.js是文件的名称...现在你的服务器已经设置并启动,在浏览器中可以访问 https://localhost:8000/ 如果你在使用Express框架,可以在入口文件中添加如下代码: 3.jpg 假设上述代码保存在 index.js
Node.js深度实践:构建高效的HTTP服务器Node.js作为一个高性能的JavaScript运行时,让JavaScript能够在服务器端发挥巨大的作用。...本文将深入探讨如何利用Node.js的HTTP模块构建一个高效的HTTP服务器,从基本的请求响应到复杂的请求处理,以及服务器代码的模块化管理。...了解这些基本的HTTP方法对于开发高效的Web服务器至关重要。创建和处理HTTP请求利用Node.js的http模块,我们可以轻松创建一个HTTP服务器。...data += chunk; }); req.on('end', () => { console.log(require('querystring').parse(data)); // 解析并打印...本文介绍了Node.js中处理HTTP请求的基础知识,以及如何通过模块化的思想来构建一个可扩展的HTTP服务器。希望这些内容能够帮助你在Node.js的学习和实践中取得更好的成绩。
Node.js编写组件的几种方式 本文主要备忘为Node.js编写组件的三种实现:纯js实现、v8 API实现(同步&异步)、借助swig框架实现。...关键字:Node.js、C++、v8、swig、异步、回调。...简介 首先介绍使用v8 API跟使用swig框架的不同: (1)v8 API方式为官方提供的原生方法,功能强大而完善,缺点是需要熟悉v8 API,编写起来比较麻烦,是js强相关的,不容易支持其它脚本语言...组件 利用swig框架编写Node.js组件 (1)编写好组件的实现:.h和.cpp ** eg: namespace a { class A{ public: int add(int a, int y...六、其它 在使用v8 API实现Node.js组件时,可以发现跟实现Lua组件的相似之处,Lua有状态机,Node有Isolate。
欢迎来到Electron的第二期入门教程,上一期我们从零开始编写并发布了第一个简单的windows桌面应用程序,对electron的项目结构等也有了基本了解。...主进程运行在Node.js环境中,这意味着它有能力要求模块并使用所有Node.js的api。 主进程的主要目的是使用BrowserWindow模块创建和管理应用程序窗口。...如我们下面尝试把csdn的首页给渲染到我们的应用上,并且在控制台打印出webContents对象,可以在main.js里面编写如下代码(如果你用的是上一期的代码,请把preload.js的代码都注释掉,...因此,在一个浏览器窗口中,所有的用户界面和应用程序功能都应该使用你在web上使用的相同的工具和范例来编写(HTML,CSS,JS)。此外,渲染器不能直接访问require或其他Node.js api。.../index.js"> 会发现打印的确是undefined,myAPI的值并没有被取到。
Zan Proxy是有赞团队开发的一个用Node.js编写的HTTP代理服务器,可用于修改请求地址和模拟响应数据。它同时也是一个自定义DNS解析和请求监控的工具。该代理服务器有人性化的界面,简单易用。...Yarn安装 yarn global add zan-proxy NPM安装 npm i -g zan-proxy 检验 zan-proxy --version 启动 命令(会自动打开ZanProxy的管理页...) zan-proxy 启动参数 指定代理端口 zan-proxy -p 8002 指定管理服务器端口 zan-proxy -u 40002 查看所有命令 zan-proxy -h 参考 官网 文档地址
Nodejs与Electron介绍 官网:https://nodejs.org/en/ Node.js是一个用于在服务器端运行JavaScript的运行时环境,用于构建高性能的网络应用程序。...2.Electron基于Chromium(用于Google Chrome的开源项目)和Node.js,使得开发者可以使用Web技术构建功能丰富、原生级别的桌面应用程序。...3.Electron提供了一个主进程(使用Node.js)和多个渲染进程(使用Chromium),使得开发者可以使用JavaScript控制整个应用程序的生命周期、访问底层系统资源,并在渲染进程中构建应用程序界面...应用示例 用Nodejs创建helloworld服务端示例,由三部分组成: 引入 required 模块:可以使用 require 指令来载入 Node.js 模块。...创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
1.3 WEB开发 使用WEB技术进行开发,利用浏览器引擎完成UI渲染,利用Node.js实现服务器端JS编程并可以调用系统API,可以把它想像成一个套了一个客户端外壳的WEB应用。...Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。...职责: 用HTML和CSS渲染界面 用JavaScript做一些界面交互 可调用的API: DOM API Node.js API Electron提供的渲染进程API 四、Electron基础 4.1...你可以同时在Electron的主进程和渲染进程使用Node.js API,)所有在Node.js可以使用的API,在Electron中同样可以使用。...在很多情况下,你的应用程序要和外部设备进行交互,一般情况下厂商会为你提供硬件设备的开发包,这些开发包基本上都是通过C++ 编写,在使用electron开发的情况下,我们并不具备直接调用C++代码的能力,
DNS 是我们整天在用的协议,不知道大家是否了解它的实现原理呢? 这篇文章我们就来深入下 DNS 的原理,并且用 Node.js 手写一个 DNS 服务器吧。...,打印服务器地址和端口,处理错误的事件,打印错误堆栈。...收到消息时直接打印。 修改系统偏好设置的本地 DNS 服务器地址指向本机: 这样再访问网页的时候,我们的服务控制台就会打印收到的消息了: 一堆 Buffer 数据,这就是 DNS 协议的消息。...,并且用 Node.js 自己实现了一个本地 DNS 服务器。...电脑可以设置本地域名服务器的地址,我们把它指向了用 Node.js 实现的本地域名服务器。 DNS 协议是基于 UDP 传输的,所以我们通过 dgram 模块启动了 UDP 服务在 53 端口。
1.3 C++ 层导致的奔溃存在 Node.js C++ add-on 相关的代码时,这一层导致应用程序奔溃的可能行极大,常见原因有:空指针访问数组越界Node.js C++ add-on API 错误调用...2.2 Node.js C++ add-on 层导致的奔溃这一次导致的奔溃问题,一般比较难排查,特别是针对前端开发人员,这里给出的解决方案是:(1)开起 Electron Crash Reporter...,用户也可以通过配置上传自己的服务器(服务端需要自己开发),也可以只生成奔溃堆栈文件在本地,用于排查奔溃问题。...2.2.1.2 将奔溃堆栈文件存放目录写到渲染进程日志通过安装包执行的应用,Electron 主进程的日志通常看不到或者不好查阅(可借助 Node.js 文件 API 写本地日志文件),可以将奔溃堆栈文件的存放路径打印到渲染进程的控制台...注意:此时渲染进程可能已经奔溃,不能发送给渲染进程打印到窗口的控制台,奔溃事件的日志最好写到本地文件或者发送个服务端。
通常认为,必须在远程服务器上托管Python解释器实例并通过WebSocket协议进行通信。是的——这就是大多数在线Python解释器所做的。...用Python编写Shell脚本 系统管理员通常会为各种系统维护任务编写Bash脚本。开发人员还倾向于使用Shell脚本自动化他们重复且耗时的手动任务——以提高他们的生产力。...很棒的是,您可以直接将Bash命令输出到一个Python变量。尝试使用ShellPy用干净简单的Python代码编写您的下一个自动化脚本吧。...基于Electron的应用程序通常在后端使用Node.js代码。...我们都知道,Electron由于嵌入式Chromium和Node.js的开销而经常产生膨胀软件。
如果是这样,那么用Electron构建桌面应用程序会有所帮助。 Electron允许您使用已知的Web技术来构建桌面应用程序。...它不处理与谷歌的云服务同步书签和历史记录。它不能安全地存储您保存的密码,也不能在您访问某个页面时自动为您填写密码。它不会检测一个页面是否用另一种语言编写,然后调用谷歌的翻译服务寻求帮助。...Node.js项目最初是发布于2009年,作为一个使用JavaScript用于开发开源、运行时跨平台的服务器端应用程序。...在过去的几年里,Node受到了极大的关注和欢迎并且用途广泛,从编写web服务器到控制机器人,还有?你猜对了,构建桌面应用程序。...这是因为,与许多服务器端情况不同,您编写的代码将在其他人的计算机上执行。
Electron通过将Chromium(一个开源的Web浏览器引擎)和Node.js(一个运行在服务器端的JavaScript运行时环境)合并到同一个运行时环境中,并将其打包成Mac、Windows和Linux...安装 Node.js在开始使用 Electron 之前,需要先安装 Node.js。可以在 Node.js 官方网站上下载安装包,选择适合自己操作系统的版本进行安装。2....三、如何通过Electron构建跨平台桌面应用安装Node.js和Electron:首先,你需要在你的计算机上安装Node.js和Electron。...Node.js是Electron的基础运行环境,而Electron则是构建桌面应用的框架。创建项目结构:接下来,你需要创建一个项目结构来组织你的代码和资源。...编写主进程代码:在主进程文件中,你需要编写代码来创建和管理应用的生命周期、窗口以及处理原生GUI相关的操作。你可以使用Electron提供的API来创建窗口、设置菜单、处理事件等。
node-gyp - Node.js 本地插件构建工具 node-gyp是用Node.js编写的跨平台命令行工具,用于为Node.js编译本机插件。...它包含gyp-next项目的供应商副本,该副本以前由Chromium团队使用,已扩展用来支持Node.js本机插件的开发。 请注意,node-gyp并不用于构建Node.js本身。...支持Node.js的多个目标版本(0.8,...,4、5、6等),无需顾及系统安装的版本(node-gyp会下载目标版本所需的开发文件或头文件)。.../path/to/executable/python 如果用npm的方式调用node-gyp,并且你安装了多个版本的Python,那么你可以设置npm的'python'配置键为适当的值。...[ "src/binding.cc" ] } ] } 延伸阅读 一些Node.js本地插件和编写gyp配置文件的补充资源: "Going Native" a nodeschool.io tutorial
所以此时我就想,既然移动app都能用vue来写,那Windows的桌面应用程序是不是也可以用Vue等web前端技术来开发呢?还真可以,那就是Electron这个框架。...你的电脑里得安装好Node.js,并且你得对Node.js和npm包管理工具的使用有基本的了解,本教程不会讲解这些过于基础的知识。...用它开发出来的桌面应用程序其实就是套壳浏览器的应用,这就是为什么它可以用web前端技术来开发,并且可以跨平台的原因了。...✧ 编写第一个桌面应用程序 1.创建一个项目文件夹,并cd到该文件夹下面。...以及正在运行的 Chromium、Node.js 和 Electron 版本的信息。
Node.js 简介 Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的 服务器端运行环境 ,允许开发者使用 JavaScript 编写高性能的 后端应用程序 。...桌面应用 Electron: 使用 Node.js 与 Chromium 结合,构建跨平台的桌面应用程序。...开发者可以编写独立的功能模块,按需运行,无需关心底层基础设施,大大降低了运维成本并提高了资源利用率。...Node.js社区对TypeScript的接纳度越来越高,许多新项目和库选择使用TypeScript编写,提高了代码质量和可维护性,降低了大型项目开发的复杂度。...综述 Node.js 以其独特的设计与丰富的生态系统,为开发者提供了构建高性能、可扩展的服务器端应用程序的强大工具。
http://efonfighting.imwork.net 本文目录: Win10 开发环境配置安装Node.js安装开发工具:VSCode安装Electron参考 这几年虽然随着移动互联网的崛起,移动端应用已经成了一片红得发紫的红海...近几年微软大力发展推广的IDE VsCode就是用electron开发的,可见electron的势头还是很猛的。...Win10 开发环境配置 安装Node.js 打开Node.js官网下载页面:https://nodejs.org/en/download/,点击下载Windows Installer,一番这里下载的node-v10.16.3...安装完后在终端输入如下命令查看安装信息: # 下面这行的命令会打印出Node.js的版本信息 node -v # 下面这行的命令会打印出npm的版本信息 npm -v npm是Node.js下的包管理器...,一般情况下安装node.js同时都会自带安装好npm。
这里记录一个类似tomcat的简单服务器的编写过程,帮助了解使用到的主要技术及原理 这里主要使用到socket网络编程以及线程等技术,关于io的技术也需要熟练掌握 思路讲解: 主要思路就是,每当有请求时...} catch (IOException e) { } } } } 注意,这里的输出是在控制台里显示的
项目需求 最近在开发一个 electron 程序,其中有用到和硬件通讯部分;硬件厂商给的是 .dll 链接库做通讯桥接, 第一版本使用 C 写的 Node.js 扩展 ;由于有异步任务的关系,实现使用了...纯 C 编程效率低,木有 trycatch 的语言调试难度也大 (磕磕绊绊的) 编写好的 .node 扩展文件,放在 electron 主进程中运行会有一定的隐患稍有差错会导致软件闪退 (后来用子进程隔离运行...) 基于 N-API 方式去编写 Node.js 插件会显得有所束缚,木有那种随心所欲写 C 的那种“顺畅”;尤其是多线程部分 综上考虑,加上通讯功能又是调用 .dll 文件,索性转战 C#,对于 windows...基于这个需求我们用 C# 去调用 .dll 文件,然后再解决派发命令、实时获取结果的通讯问题就OK了,剩下的就都是好处啦 C# 编写难度低于 C,又是 windows 亲儿子,基于 .NET Framework...编译后的程序仅 19KB (C实现同样功能编出来的.node文件 565KB) 基于 C# 的插件独立于 Node.js 运行环境,程序出了问题不会影响 electron 应用 木有任何的编程束缚,~
Node.js的Stream被称为「流」,特别适合读写超大的文件 首先引入需要的模块 (砸瓦鲁多) const fs = require('fs'); const path = require('path...创建输入「流」(读取「流」) // 第一步: 设定读取的文件位置, 即当前代码所处的文件 const rs = fs.createReadStream(__filename); "吸气冲承" (设定输入...把 读取「流」 和写入「流」对接到一起 // 第三步: 将读取的文件(即当前代码所处的文件, 输出到result.js) rs.pipe(ws) 时间开始流动 ?...(path.join(__dirname, 'result.js')); // 第三步: 将读取的文件(即当前代码所处的文件, 输出到result.js) rs.pipe(ws) 代码执行效果(拷贝文件...小结: Stream在拷贝大文件的过程中,是非常好用的, 可以让我们以1M内存, 轻松高效的的拷贝500M的文件!
领取专属 10元无门槛券
手把手带您无忧上云