自使用JSON API
在自消費JSON API,您可以定義一些獨立的控制器功能的一些功能,然後連線功能了在事後表達。讓我們用一個圖書館應用爲例:
books.js
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
}
}
到http.js
在這個文件中,我們建立一個控制器功能轉換成HTTP路由功能。我們採取的查詢參數並傳遞給我們的控制器選項:
module.exports = function toHTTP (func) {
return function (req, res) {
func(req.params).then(function (data) {
res.send(data)
})
}
}
router.js
然後我們我們的控制器連接到我們的http路由器
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))
所以我們現在有一個連接到控制器功能的快速應用程序。而奇妙的是我們也可以手動調用這些控制器功能。
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