diff --git a/LEEME.md b/LEEME.md new file mode 100644 index 0000000..6250757 --- /dev/null +++ b/LEEME.md @@ -0,0 +1,173 @@ + +# kill-9 + +un modo de matar el proceso **node** desde el navegador. Algo así como http://yoursite.kom/kill-9 + + + +[![version](https://img.shields.io/npm/v/kill-9.svg)](https://npmjs.org/package/kill-9) +[![downloads](https://img.shields.io/npm/dm/kill-9.svg)](https://npmjs.org/package/kill-9) +[![build](https://img.shields.io/travis/codenautas/kill-9/master.svg)](https://travis-ci.org/codenautas/kill-9) +[![coverage](https://img.shields.io/coveralls/codenautas/kill-9/master.svg)](https://coveralls.io/r/codenautas/kill-9) +[![dependencies](https://img.shields.io/david/codenautas/kill-9.svg)](https://david-dm.org/codenautas/kill-9) + + + +idioma: ![castellano](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-es.png) +también disponible en: +[![English](https://raw.githubusercontent.com/codenautas/multilang/master/img/lang-en.png)](README.md) - + + + +## instalación + + +```sh +$ npm install kill-9 +``` + + + +## Usar en el navegador + + +![use kill-9 as a url in the navigator](docs/chromeKill-9.png) + +## API + +```js +var express = require('express'); +var app = express(); + +var kill9 = require('kill-9'); + +var server = app.listen(3000, function() { + console.log('Listening on port %d', server.address().port); +}); + +app.use(kill9({log:true})); + +// complete example: +function site_up(req,res){ + var kill_url='kill-9?pid='+process.pid; + res.send("

kill-9 demo

site up

try "+kill_url+""); +} + +app.get('/index.html',site_up); +app.get('/',site_up); +``` + +### kill9([options]) + + + +Retorna una función *middleware* para usar con `express.use`. +Una vez instalada se puede matar el proeso desde el navegador con la sentencia "kill". + + +```url +http://thesite.kom/kill-9?pid=12345 +``` + + +### options + +opciones | tipo | valor predeterminado | detalles +----------|---------|-------------|------------------------- +statement | text | "kill-9" | La sentencia que hay que poner en la url. +pid | integer | process.pid | El número de pid que hay que pasar como parámetro. Por defecto kill-9 usa el pid real pid obtenido con ``process.pid`` +log | boolean | false | Setear log para que kill-9 muestre una mensaje por console.log cuando se instala. Se puede especificar el mensaje o `true` +statusKilled | integer | 200 | El valor de status que devuelve al matar +location | url | | La URL a donde redireccionar (es obligatorio si statusKilled está entre 300 y 303. +messageKilled | text | "kill -9 success" | El mensaje a mostrar cuando el *kill* tiene éxito +statusBad | integer | 404 | El status cuando el *pid* no coincide con el esperado +locationBad | url | | La URL a donde redireccionar en caso de falla. Es obligatorio si statusKilled está entre 300 y 303. +messageBad | text | "kill -9 unknown" | El mensaje a mostrar cuando *pid* no coincide con el esperado. +process | object | process | El objeto proceso (para text, se le puede pasar un objecto *mock*) + + + +```js +app.use(kill9({log:"remember to delete in production"})); + +// Supose that exists getMode(). This is better +if(getMode()=='develop'){ + app.use(kill9({log:true})); +} +``` + +```js +app.use(kill9({statusKilled:301, location:'other_site.kom'})); +``` + +```js +app.use(kill9({messageKilled: "I'll be back"})); +``` + +```js +app.use(kill9({messageBad: "Not foud"})); +``` + +```js +function ProcessMock(){ + this.pid=444; + this.codeRecived=null; + this.exit=function(code){ + this.codeRecived=code; + } +} + +var pm=new ProcessMock(); +test_app.use( + kill9({process:pm}) +).get( + 'kill-9?pid=444' +).then(function(){ + assert.equal(mp.codeRecived, 444); +}); +``` + +## Notes + + + **This is not secure in production servers. Use it only in developer servers**. Kill-9 lacks of password or validate user or any way for confirm legal use. + + Actually options.pid can be a text, but I don't know if this will change in the future. + +[!--lang:*--> + +## License + +[GPL-2.0](LICENSE) + +