Electron 教程:原生Node库
在上一章中,我们已经使用了Nodejs的fs模块。现在我们来看看其他一些可以在Electron中使用的Nodejs模块。
OS模块
使用OS模块,我们可以获得许多关于应用程序运行的操作系统信息。下面是几个比较常用的方法。这些方法帮助我们根据运行的操作系统定制应用程序。
1.os.userInfo([options]):os.userInfo()方法返回当前登录的用户信息。该信息可以用于为用户个性化配置。
2.os.platform():os.platform()方法返回一个标识操作系统平台的字符串。
3.os.homedir():os.homedir()方法以字符串形式返回当前用户的主目录。通常,所有用户的配置都位于用户的主目录中。我们的应用程序默认也应该这样做.
4.os.arch():os.arch()方法返回一个标识CPU架构的描述字符串。当运行在非X86体系时,可以使用它来调整应用程序以适应该架构。
5.os.EOL:一个字符串常量,定义操作系统特定的行尾标记。
使用相同的main.js文件和下面的HTML文件,我们可以在屏幕上输出这些属性.
<html> <head> <title>OS Module</title> </head> <body> <script> let os = require('os') document.write('User Info: ' + JSON.stringify(os.userInfo()) + '<br>' + 'Platform: ' + os.platform() + '<br>' + 'User home directory: ' + os.homedir() + '<br>' + 'OS Architecture: ' + os.arch() + '<br>') </script> </body> </html>
现在使用以下命令运行应用程序
$ electron ./main.js
上述命令将产生以下输出:
User Info: {"uid":1000,"gid":1000,"username":"ayushgp","homedir":"/home/ayushgp", "shell":"/usr/bin/zsh"} Platform: linux User home directory: /home/ayushgp OS Architecture: x64
Net模块
Net模块用于应用程序中的网络相关工作。我们可以使用这个模块创建服务器和Socket连接。一般来说,对于与网络相关的任务,建议使用socket.io等第三方类库,而不是直接使用网络模块。
下表列出了模块中常用的方法
1.net.createServer([options][, connectionListener]):创建新的TCP服务器。connectionListener参数自动设置为连接事件的侦听器。
2.net.createConnection(options[, connectionListener]):创建新的TCP服务器。connectionListener参数是一个工厂方法,它返回一个新的net.Socket,并连接到提供的地址和端口。
3.net.Server.listen(port[, host][, backlog][, callback]):开始接受指定端口和主机上的连接。如果省略host,服务器将接受指向任何IPv4地址的连接。
4.net.Server.close([callback]):当所有连接都结束并且服务器发出关闭事件时,关闭连接。
5.net.Socket.connect(port[, host][, connectListener]):打开给定套接字的连接。如果指定了端口和主机,那么套接字将作为TCP套接字打开。
Net模块也有一些其他的方法。详细可以参考Nodejs的完整方法列表.
现在,让我们创建一个Electron应用程序,它使用Net模块来创建到服务器的连接。我们需要创建一个新的server.js文件:
var net = require('net'); var server = net.createServer(function(connection) { console.log('Client Connected'); connection.on('end', function() { console.log('client disconnected'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); }); server.listen(8080, function() { console.log('Server running on http://localhost:8080'); });
使用相同的main.js文件,用以下内容替换HTML文件.
<html> <head> <title>net Module</title> </head> <body> <script> var net = require('net'); var client = net.connect({port: 8080}, function() { console.log('Connection established!'); }); client.on('data', function(data) { document.write(data.toString()); client.end(); }); client.on('end', function() { console.log('Disconnected :('); }); </script> </body> </html>
使用以下命令运行服务器.
$ node server.js
使用以下命令运行客户端应用程序.
$ electron ./main.js
上述命令将产生以下输出
请注意,我们会自动连接到服务器,也会自动断开连接。
我们还有一些其他的Node模块,可以直接在前端使用Electron。这些模块的用法取决于您在哪个场景中使用它们。