README.md
Narou Middleware
---
<p align="right">
<a href="https://npmjs.org/package/narou-middleware">
<img src="https://img.shields.io/npm/v/narou-middleware.svg?style=flat-square">
</a>
<a href="https://travis-ci.org/59naga/narou-middleware">
<img src="http://img.shields.io/travis/59naga/narou-middleware.svg?style=flat-square">
</a>
<a href="https://codeclimate.com/github/59naga/narou-middleware/coverage">
<img src="https://img.shields.io/codeclimate/github/59naga/narou-middleware.svg?style=flat-square">
</a>
<a href="https://codeclimate.com/github/59naga/narou-middleware">
<img src="https://img.shields.io/codeclimate/coverage/github/59naga/narou-middleware.svg?style=flat-square">
</a>
<a href="https://gemnasium.com/59naga/narou-middleware">
<img src="https://img.shields.io/gemnasium/59naga/narou-middleware.svg?style=flat-square">
</a>
</p>
「[小説家になろう](http://syosetu.com/)」 [Express4](https://github.com/expressjs/express#readme)用 非公式 ミドルウェア
インストール
---
```bash
npm install express narou-middleware --save
```
セットアップ
---
* `createNarouMiddleware(options)` -> `middleware`
`Express4`用のミドルウェアを返します。`app.use(middleware)`で渡すことで、対象に「[なろうAPI](#api)」を追加します。
`options`として`{r18:true}`を設定することで、後述の「[API(18禁)](#api(18禁))」を許可します。
```js
// index.js
import express from 'express';
import createNarouMiddleware from 'narou-middleware';
const app = express();
app.set('json spaces', 2);
app.use(createNarouMiddleware());
app.listen(59798, () => {
console.log('listen on 59798');
});
```
```bash
babel-node index.js
# listen on 59798
curl http://localhost:59798/
# {
# "uri": "http://api.syosetu.com/novelapi/api/?out=json&gzip=5",
# "allcount": 398177,
# "items": [
# ...
```
API
---
* 検索
* `/`
* `/?params`
* `/word?params`
[なろう小説API - naroujs](https://github.com/59naga/naroujs/blob/master/README.md#%E3%81%AA%E3%82%8D%E3%81%86%E5%B0%8F%E8%AA%ACapi)を参照
* もくじ
* `/toc/:ncode`
[`scrapeNarou.toc(ncode)` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
* 本文
* `/novel/:ncode`
* `/novel/:ncode/:page`
[`scrapeNarou(ncode[, page])` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
* 本文(短編)
* `/shortstory/:ncode`
[`scrapeNarou(ncode[, page])` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
* ランキング
* `/rank/:rtype`
[なろう小説ランキングAPI - naroujs](https://github.com/59naga/naroujs/blob/master/README.md#%E3%81%AA%E3%82%8D%E3%81%86%E5%B0%8F%E8%AA%AC%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0api)を参照
* 殿堂入り
* `/fame/:ncode`
[なろう殿堂入りAPI - naroujs](https://github.com/59naga/naroujs/blob/master/README.md#%E3%81%AA%E3%82%8D%E3%81%86%E6%AE%BF%E5%A0%82%E5%85%A5%E3%82%8Aapi)を参照
API(18禁)
---
* 検索
* `/r18/?params`
* `/r18/word?params`
[なろう18禁小説API - naroujs](https://github.com/59naga/naroujs/blob/master/README.md#%E3%81%AA%E3%82%8D%E3%81%8618%E7%A6%81%E5%B0%8F%E8%AA%ACapi)を参照
* もくじ
* `/r18/toc/:ncode`
[`scrapeNarou.tocR18(ncode)` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
* 本文
* `/r18/novel/:ncode`
* `/r18/novel/:ncode/:page`
[`scrapeNarou.r18(ncode[, page])` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
* 本文(短編)
* `/r18/shortstory/:ncode`
[`scrapeNarou.r18(ncode[, page])` - scrape-narou](https://github.com/59naga/scrape-narou#api)を参照
関連するプロジェクト
---
* [naroujs - NodeJS/ブラウザ用 なろう(小説/小説ランキング/殿堂入り/18禁小説)API JavaScriptラッパ](https://github.com/59naga/naroujs#readme)
* [scrape-narou - NodeJS用 小説本文取得ライブラリ](https://github.com/59naga/scrape-narou#readme)
謝辞
---
このアプリケーションは非公式のもので、[株式会社ヒナプロジェクト](http://hinaproject.co.jp/)様が提供しているものではありません。
開発環境
---
下記が[グローバルインストール](https://github.com/creationix/nvm#readme)されていることが前提です。
* NodeJS v5.11.1
* Npm v3.8.6 (or [pnpm](https://github.com/rstacruz/pnpm))
```bash
git clone https://github.com/59naga/naroujs
cd naroujs
npm install
npm test
```
License
---
[MIT](http://59naga.mit-license.org/)