📌  相关文章
📜  如何使用 Node.js 测试互联网速度?

📅  最后修改于: 2022-05-13 01:56:12.803000             🧑  作者: Mango

如何使用 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