Awesome
koa-safe-jsonp
Safe jsonp plugins for koa.
Install
# npm ..
$ npm i koa-safe-jsonp
# yarn ..
$ yarn add koa-safe-jsonp
Usage
const jsonp = require('koa-safe-jsonp');
const Koa = require('Koa');
const app = new Koa();
jsonp(app, {
callback: '_callback', // default is 'callback'
limit: 50, // max callback name string length, default is 512
});
app.use(function (ctx) {
ctx.jsonp = {foo: "bar"};
});
app.listen(1984);
curl test it:
$ curl 'http://127.0.0.1:1984/foo.json?_callback=fn' -v
* About to connect() to 127.0.0.1 port 1984 (#0)
* Trying 127.0.0.1...
* Adding handle: conn: 0x7fca3c004000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fca3c004000) send_pipe: 1, recv_pipe: 0
* Connected to 127.0.0.1 (127.0.0.1) port 1984 (#0)
> GET /foo.json?_callback=fn HTTP/1.1
> User-Agent: curl/7.30.0
> Host: 127.0.0.1:1984
> Accept: */*
>
< HTTP/1.1 200 OK
< X-Powered-By: koa
< X-Content-Type-Options: nosniff
< Content-Type: application/javascript
< Content-Length: 51
< Date: Thu, 17 Jul 2014 15:29:05 GMT
< Connection: keep-alive
<
* Connection #0 to host 127.0.0.1 left intact
/**/ typeof fn === 'function' && fn({"foo":"bar"});