如何使用 Node.js 测试互联网速度?
以下方法介绍了如何在 NodeJs 中进行互联网速度测试。我们将使用 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 */
注意:按住回车键并在终点行相应地输入“是/否”。
第 3 步:安装 Express.js 和 speed-test 模块。现在在您的 speed-test-gfg(文件夹名称)文件夹中输入以下命令行:
$ npm install express
$ npm install speed-test --global
注意:分别安装两个模块。
第四步:创建 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");
});
index.html
Speed Test
GeeksforGeeks
Javascript
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 = `
Ping : ${result.ping}
Download Speed : ${result.download}
Upload Speed : ${result.upload}
`;
res.send(response);
});
});
// Server
app.listen(4000, () => {
console.log("Server running on port - 4000");
});
输出:我们将在浏览器屏幕上得到以下输出。
GeeksforGeeks
第 6 步:现在让我们实现获取当前下载和上传速度的功能。这里我们使用子进程中可用的 exec函数来执行速度测试的命令。
索引.html
Speed Test
GeeksforGeeks
Javascript
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 = `
Ping : ${result.ping}
Download Speed : ${result.download}
Upload Speed : ${result.upload}
`;
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