2012-11-15 9 views
34

मैं अपने NodeJS में कोड का निम्न भाग में लिखा है/Expressjs सर्वर:मैं नोडजेस/एक्सप्रेस से ब्राउजर को सफलता की स्थिति कैसे भेज सकता हूं?

app.post('/settings', function(req, res){ 
var myData = { 
    a: req.param('a') 
    ,b: req.param('b') 
    ,c: req.param('c') 
    ,d: req.param('d') 
} 

var outputFilename = 'config.json'; 

fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) { 
    if(err) { 
     console.log(err); 
    } else { 
     console.log("Config file as been overwriten"); 
    } 
}); 

});

इससे मुझे सबमिट फॉर्म डेटा प्राप्त करने और इसे JSON फ़ाइल में लिखने की अनुमति मिलती है।

यह पूरी तरह से काम करता है। लेकिन ग्राहक किसी प्रकार की पोस्टिंग स्थिति में रहता है और अंततः समय समाप्त हो जाता है। तो मुझे क्लाइंट को वापस किसी प्रकार की सफलता स्थिति या सफलता शीर्षलेख भेजने की आवश्यकता है।

मुझे यह कैसे करना चाहिए?

अग्रिम धन्यवाद!

उत्तर

74

एक्सप्रेस अद्यतन 2015:

इस बजाय का उपयोग करें:

res.sendStatus(200) 

यह पदावनत किया गया है:

res.send(200) 
+0

मुझे सर्वर रिस्पॉन्स प्राप्त करने की कोई विधि नहीं है स्थिति – naoru

+1

क्या आप सुनिश्चित हैं कि आपके पास एक्सप्रेस स्थापित है और यह एक्सप्रेस v4 है? – ac360

+1

हां! उत्तर में तारीख जोड़ें। वहां बहुत सारे अप्रचलित उत्तर हैं। विशेष रूप से तेजी से बदलते ढेर के लिए।(संस्करण 4.0.0) हम महीने कम से कम एक जोड़े के लिए अच्छा होना चाहिए :) –

8

Jup, आप एक जवाब वापस भेजने की जरूरत है, सबसे सरल

res.send(200); 
writeFile की कॉलबैक हैंडलर के अंदर

होगा।

200 एक HTTP स्थिति कोड है, तो आप भी अलग-अलग हो सकता है कि विफलता के मामले में:

if (err) { 
    res.send(500); 
} else { 
    res.send(200); 
} 
+0

yup यह ठीक है कि क्या गुम है! – tUrG0n

+0

एक आकर्षण की तरह काम किया। आपका बहुत बहुत धन्यवाद! – jansmolders86

19

बस को जोड़ने के लिए, कि आप res.json() सहायक के माध्यम से json भेज सकते हैं चाहता था।

res.json({ok:true}); // status 200 is default 

res.json(500, {error:"internal server error"}); // status 500 

अद्यतन 2015:

res.json(status, obj) के पक्ष में पदावनत किया गया है res.status(status).json(obj)

res.status(500).json({error: "Internal server error"}); 
+0

आह महान, मुझे यह नहीं पता था, धन्यवाद! – jansmolders86

+0

यह बहुत अच्छा है! धन्यवाद! – MadPhysicist

7

एक्सप्रेस 4 में आपको क्या करना चाहिए:

res.status(200).json({status:"ok"}) 
बजाय

बहिष्कृत:

res.json(200,{status:"ok"}) 
संबंधित मुद्दे

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