├── .gitignore ├── README.md ├── package.json ├── routers └── speedTest.js ├── server.js └── startup └── router.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | *.log 3 | .env 4 | /speedtest -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderkhalide/fast.com-clone-backend/28ccf59952ea48a8368539261ddee7a218517113/README.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fast.com_clone", 3 | "version": "1.0.0", 4 | "main": "server.js", 5 | "license": "MIT", 6 | "engines": { 7 | "node": "14.11.0" 8 | }, 9 | "dependencies": { 10 | "cors": "^2.8.5", 11 | "dotenv": "^8.2.0", 12 | "express": "^4.17.1", 13 | "fast-speedtest-api": "^0.3.2" 14 | }, 15 | "devDependencies": { 16 | "nodemon": "^2.0.7" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /routers/speedTest.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const router = express.Router() 3 | const FastSpeedtest = require('fast-speedtest-api') 4 | 5 | router.get('/', async (req, res) => { 6 | try{ 7 | let speedTest = new FastSpeedtest({ 8 | token: "your-app-token", // required 9 | verbose: false, 10 | timeout: 10000, 11 | https: true, 12 | urlCount: 5, 13 | bufferSize: 8, 14 | unit: FastSpeedtest.UNITS.Kbps // default: Bps 15 | }) 16 | 17 | speedTest.getSpeed().then(speed => { 18 | res.send({speed: Math.round(speed)}) 19 | }).catch(e => { 20 | res.status(400).send({error: "Something went wrong here: " + ex}) 21 | }) 22 | 23 | }catch(ex){ 24 | res.status(400).send({error: "Something went wrong here: " + ex}) 25 | } 26 | }) 27 | 28 | module.exports = router 29 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config() 2 | const express = require('express') 3 | const app = express() 4 | const cors = require('cors') 5 | const port = process.env.PORT || 2000 6 | 7 | app.use([cors()]) 8 | require('./startup/router')(app) 9 | 10 | app.listen(Number(port), () => console.log('listening on port ' + port)) -------------------------------------------------------------------------------- /startup/router.js: -------------------------------------------------------------------------------- 1 | const express = require('express') 2 | const speedTest = require('../routers/speedTest') 3 | 4 | module.exports = function(app){ 5 | app.use(express.json()) 6 | app.use(express.urlencoded({ extended: true })) 7 | app.use('/api/speed-test', speedTest) 8 | } 9 | --------------------------------------------------------------------------------