Skip to content

res.sendFile or res.download crashes whole server if file doesnt exist. #346

@SupertigerDev

Description

@SupertigerDev

When a file doesnt exist, the server crashes.

import {Server} from 'hyper-express';
import express from 'express'



const server = new Server();

// crashes whole server.
// http://localhost:3000
server.get('/', (req, res) => {
    res.download('./file-does-not-exist.mjs')
    
    // or res.sendFile('./file-does-not-exist.mjs')
});

server.listen(3000);


const app = express();
// doesnt crash the server
// http://localhost:3000
app.get('/', (req, res) => {
    res.download('./file-does-not-exist.mjs')

    // or res.sendFile('./file-does-not-exist.mjs')
});

app.listen(3001);
PS C:\Users\Fishie\Desktop\hyper-express-test> node .\index.mjs
Error: ENOENT: no such file or directory, watch './test.mjs'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2550:36)
    at LiveFile._initiate_watcher (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\plugins\LiveFile.js:47:36)
    at new LiveFile (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\plugins\LiveFile.js:38:14)
    at Response.file (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\http\Response.js:812:26)
    at Response.download (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\http\Response.js:850:48)
    at Route.handler (file:///C:/Users/Fishie/Desktop/hyper-express-test/index.mjs:9:9)
    at Route.handle (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\router\Route.js:136:35)
    at Server._handle_uws_request (C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\Server.js:527:19)
    at C:\Users\Fishie\Desktop\hyper-express-test\node_modules\.pnpm\hyper-express@6.17.3\node_modules\hyper-express\src\components\Server.js:421:26 {
  errno: -4058,
  syscall: 'watch',
  code: 'ENOENT',
  path: './test.mjs',
  filename: './test.mjs'
}
node:internal/process/promises:394
    triggerUncaughtException(err, true /* fromPromise */);
    ^

[Error: ENOENT: no such file or directory, open 'C:\Users\Fishie\Desktop\hyper-express-test\test.mjs'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\Users\\Fishie\\Desktop\\hyper-express-test\\test.mjs'
}

Node.js v22.15.0
PS C:\Users\Fishie\Desktop\hyper-express-test>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions