Express.js file server endpoint filter by extension
JS
S
JavaScriptBasic extension checking, returns 415 if the file requested is not mp4
1 @Get(/^\/(\S+)/)
2 public async streamFile(request: Request, response: Response): Promise<any> {
3 const protocol = 'https';
4 const hostname = 'serving.coderecipes.com';
5 const url = `${protocol}://${hostname}/bw/${request.params[0]}`;
6 const extension = url.substr(-4);
7 console.log(extension, extension.indexOf('mp4'));
8 if (extension.indexOf('mp4') > -1) {
9 return axios({
10 method: 'get',
11 url: url,
12 responseType: 'stream'
13 })
14 .then((streamResponse) => {
15 streamResponse.data.pipe(response);
16 })
17 .catch((err: any) => {
18 console.log('not found');
19 // console.log('error', err);
20 response.send(404);
21 // throw err;
22 });
23 }
24 console.log('wrong extension');
25 return response.send(415);
26 }Created on 1/7/2019