如何使用Node.js测试互联网速度
下面的方法介绍了如何在Node.js中进行互联网速度测试。我们将使用speed-test node-package来实现。该软件包将帮助我们获取当前的下载和上传速度。
使用以下步骤在Node.js中安装模块并进行速度测试:
步骤1: 创建一个项目目录并将其作为工作目录。
$ mkdir speed-test-gfg
$ cd speed-test-gfg
步骤2: 使用npm init命令为我们的项目创建一个package.json文件。
$ npm init // OR
$ npm init -y /* For auto add the required field */
注意: 在终端行上持续按下回车键,并根据情况输入“yes/no”。
步骤3: 安装Express.js和speed-test模块。现在在你的speed-test-gfg(你的文件夹名字)文件夹中,输入以下命令行:
$ npm install express
$ npm install speed-test --global
注意: 需要分别安装这两个模块。
步骤4: 创建index.js和index.html文件后,我们的项目结构将如下所示。
步骤5: 创建一个基本的服务器。在index.js文件中写下以下代码。
index.js
const express = require('express');
const app = express();
app.get('/' , (req , res)=>{
res.send("GeeksforGeeks");
});
// Server setup
app.listen(4000 , ()=>{
console.log("server is running on port 4000");
});
输出: 在浏览器屏幕上我们将会得到以下输出。
GeeksforGeeks
步骤6: 现在让我们实现获取当前下载和上传速度的功能。我们在这里使用child-process中的exec函数来执行速度测试的命令。
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible"
content="IE=edge" />
<meta name="viewport"
content="width=device-width, initial-scale=1.0" />
<title>Speed Test</title>
</head>
<body>
<center>
<h1 style="color: green">GeeksforGeeks</h1>
<form method="POST" action="/test">
<button>Check Internet Speed</button>
</form>
</center>
</body>
</html>
const express = require("express");
const app = express();
const { exec } = require("child_process");
// Home Route
app.get("/", (req, res) => {
res.sendFile(__dirname + "/views/index.html");
});
// Speed Test
app.post("/test", (req, res) => {
exec("speed-test --json", (err, stdout, stderr) => {
if (err || stderr) return res.send(
"Error while testing internet speed.");
const result = JSON.parse(stdout);
const response = `<center>
<h2>Ping : {result.ping}</h2>
<h2>Download Speed :{result.download}</h2>
<h2>Upload Speed : ${result.upload}</h2>
</center>`;
res.send(response);
});
});
// Server
app.listen(4000, () => {
console.log("Server running on port - 4000");
});
步骤7: 使用以下命令运行服务器。
node index.js
输出: 现在在您的浏览器中打开 http://localhost:4000 并在单击按钮后等待1-2分钟以查看下面的输出。
参考: https://www.npmjs.com/package/speed-test