# output-static

> Filter of static files requests

Latest version **1.0.5** (published 2021-01-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install output-static
pnpm add output-static
yarn add output-static
bun add output-static
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2021-01-11 |
| First published | 2020-12-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | German Stepanov |
| Maintainers | german-stepanov |
| Keywords | static, filter |

## Links

- npm: https://www.npmjs.com/package/output-static
- Repository: https://github.com/German-Stepanov/nodejs-output-static
- Homepage: https://github.com/German-Stepanov/nodejs-output-static#readme
- Issues: https://github.com/German-Stepanov/nodejs-output-static/issues
- npm.io page: https://npm.io/package/output-static

## Recent versions

- 1.0.5 (latest) — 2021-01-11
- 1.0.4 — 2021-01-04
- 1.0.3 — 2020-12-16
- 1.0.1 — 2020-12-15

## README

# nodejs-output-static
Фильтр запросов статичных ресурсов
```
Возвращает запрашиваемый ресурс, если
- он является файлом,
- его расширению сопоставлен MIME,
- он не запрещен для скачивания.

В противном случае возвращается ошибка.
Для определения MIME используется модуль "output-static-mime" - список допустимых расширений.
```
## Пример подключения
```JS
var static = require('output-static')(
	//Запрет доступа
	forbidden		: ['/server.js', '/node_modules/', '/views/'],
	//Очищаемые файлы js или css от комментарие
	clear			: ['/js/app.js', '/css/style.css'],	
	//Список mime						
	mime			: require('output-static-mime'),	
	//Режим отладки (добавлять ошибки заппросов в лог)
	isDebug			: true,
);
```
## Примеры использования:
```JS
var http = require('http');
//Формируем задачу
var app = function(req, res) {
	//Фильтруем запросы статичных ресурсов
	static.filter (req, res, function (err) {
		if (!err) return;
		if (err.code>1) {
			//Запрашиваемый ресурс не существует, не найдено mime или запрещен к нему доступ
			if (static.config.isDebug) console.log('ERROR:', static.errors[err.code], req.url);
			res.writeHead(404);
			res.end();
			return;
		}
		
		//Обработка динамичных запросов
		//...
	});
};
//Создаем и запускаем сервер для задачи
var server = http.createServer(app);
server.listen(myConfig.data.port);
//Отображаем информацию о старте сервера
if (myConfig.data.isDebug) console.log('Server start on port ' + myConfig.data.port + ' ...');
```

## Тестирование
```
Пример серверного кода для проверки работоспособности расположен в директории "_demo"
В качестве примера используются запрос файла подключения JQuery, .css, .js, файла видео .mp4 и файла favicon.ico
```
### Запуск тестов
```
node server
```
### Результат
```
http://localhost:2020
```

---
_Source: https://npm.io/package/output-static · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
