JSON APIを消費する自己でJSONのAPI
を消費する自己、あなたには、いくつかのスタンドアロンコントローラの機能に一部の機能を定義し、事後に表現するための機能性をアップ配線します。のは、一例として、ライブラリアプリケーションを使用してみましょう:
books.jsに-http.js我々はHTTPルートにコントローラ機能を変換する関数を構築し、このファイルに
module.exports = {
browse: function() {
return Book.findAll()
},
read: function (options) {
return Book.findById(options.book)
},
processLateFees: function() {
// Do a bunch of things to process late fees
}
}
。私たちは、クエリのparamsを取り、オプションとして、当社のコントローラにそれを渡す:
module.exports = function toHTTP (func) {
return function (req, res) {
func(req.params).then(function (data) {
res.send(data)
})
}
}
router.js
そして、我々は、だから我々が今持っている
var express = require('express')
var books = require('./books')
var toHTTP = require('./to-http')
var app = express()
app.get('/books', toHTTP(books.browse))
app.get('/books/:book', toHTTP(books.read))
app.get('/batch-jobs/process-late-fees', toHTTP(books.processLateFees))
当社のhttpルータに私たちのコントローラを接続しますコントローラ機能に接続された高速アプリケーション。素晴らしいことは、これらのコントローラ機能を手動で呼び出すこともできることです。あなたは、この深例ではより多くを必要とする場合
var books = require('./books')
books.processLateFees().then(function() {
// late fees have been processed
})
、Ghost blog codebaseは現在、この模様を中心に構築されています。それは非常に有益な読書です。
あなたはExpressインスタンスを持っていますか?はいの場合、単に 'request'イベントを引き起こすことができると思います。 – gustavohenke
@gustavohenkeええ、私はアクセスが必要な場合があります - あなたは簡単な例を置くことができますか? – bendytree
リクエストを送信せずにテストすることはできません。 mikealのノードのhttp.requestまたはリクエストライブラリはリクエストを送信するのに十分です。これがサーバー上でテストを実行する方法です。また、これはサーバ上で動作するので、 '127.0.0.1'はうまく動作するはずです。 – user568109