स्व उपभोक्ता JSON एपीआई
एक आत्म लेने वाली JSON एपीआई, आप कुछ स्टैंडअलोन नियंत्रक कार्यों में कुछ कार्यक्षमता को परिभाषित करने और फिर इस तथ्य के बाद व्यक्त करने के लिए कार्यक्षमता तार। एक उदाहरण के रूप में एक पुस्तकालय आवेदन का उपयोग करते हैं:
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 वर्तमान में इस पैटर्न आसपास बनाया गया है। यह एक बहुत ही जानकारीपूर्ण पढ़ा है।
आप एक्सप्रेस उदाहरण है? यदि हां, मुझे विश्वास है कि आप बस 'अनुरोध' ईवेंट को ट्रिगर कर सकते हैं। – gustavohenke
@gustavohenke हाँ, मुझे पहुंच की आवश्यकता हो सकती है - क्या आप एक साधारण उदाहरण डाल सकते हैं? – bendytree
एक भेजने के बिना अनुरोधों का परीक्षण करना संभव नहीं है। माइकल से नोड का http.request या अनुरोध लाइब्रेरी अनुरोध भेजने के लिए पर्याप्त है। इस प्रकार आपको सर्वर पर परीक्षण चलाना चाहिए। यह भी सर्वर पर चलता है इसलिए '127.0.0.1' ठीक काम करना चाहिए। – user568109