2014-04-25 28 views
15

प्रस्तुत किए बिना जेसन परिणामों की सेवा कैसे करें I json API सेवा बनाने के लिए एक्सप्रेस 4 का उपयोग कर रहा हूं। मैं इसे प्रस्तुत करने की कोशिश किए बिना एक साधारण जेसन भेजने के लिए इसे परिभाषित नहीं कर सकता।एक्सप्रेस जेएस 4 किसी भी विचार/सीएसएस

var express  = require('express'); 
var router  = express.Router(); 

module.exports = function (app, namespace) { 
    router.get('/', function(req, res) { 
     res.json({'body': 123}); 
    }); 


    app.use(namespace + '/v1', router); 
}; 

जब मैं मार्ग का उपयोग यह

Error: Failed to lookup view "error" in views directory "/Volumes/api_service/init/views" 

मैं सभी को एक साथ

//app.set('views', path.join(__dirname, 'views')); 
//app.set('view engine', 'jade'); 

विचारों इंजन को दूर करने की कोशिश की है, लेकिन यह इस त्रुटि के साथ चिल्लाता

No default engine was specified and no extension was provided 
+0

क्या आपने कोई त्रुटि दृश्य जोड़ने की कोशिश की और देखा कि त्रुटि क्या है या ऐसा कुछ है? – bredikhin

+0

मैंने लिखा कि त्रुटि। यह 'त्रुटि: दृश्य निर्देशिका में देखने के लिए विफल "त्रुटि"/वॉल्यूम/api_service/init/views " – WebQube

उत्तर

32

हैं आपपर कोई कॉल कर रहे हैंजैसे कि 'एक्सप्रेस जेनरेट' द्वारा उत्पन्न त्रुटि वाले हैंडलर में, तो आपको वर्णित त्रुटि दिखाई देगी। एक json एपीआई सेवा के लिए हो सकता है आप बस render() फोन करने के बजाय स्थिति res.status 404 या 500

तो मूल रूप से करने के लिए सेट के साथ res.send() फोन कुछ भी प्रस्तुत करना की जरूरत नहीं है, इस की जगह:

app.use(function(err, req, res, next) { 
    res.render('error', { 
     message: err.message, 
     error: err 
    }); 
}); 
इस के साथ

:

app.use(function(err, req, res, next){ 
    res.status(err.status || 500); 
    res.send({ 
     message: err.message, 
     error: err 
    }); 
    return; 
}); 
5

अंततः इसे एक्सप्रेस सामान्य पकड़ 404 के कि सभी मार्गों unvailables बनाया गया था।

app.use(function(req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

उसे हल करने से उसे हल किया गया।

+0

अगले() फ़ंक्शन को हटाने के लिए मेरे लिए चाल है – jeyanthinath

संबंधित मुद्दे