मुझे नोड। Js / express.js में यह कोड है:
var उपयोगकर्ता = mongoose.model ( 'उपयोगकर्ता'); Var उपयोगकर्तारायटर = एक्सप्रेस.राउटर (); UsersRouter.put ('/: id', फ़ंक्शन (रिक, रेस) {req.body._id = req.params.id; var usr = नया उपयोगकर्ता (req.body); usr.validate (फ़ंक्शन (गलती) {if (गलती) {res.status (400) .json ({}); वापसी;} var upsertData = usr.toObject (); upsertData._id हटाएं; User.update ({_ id: usr._id}, upsertData, {upert : True}, function (err) {if (err) {res.status (500) .json ({}); return;} res.status (204) .json ({});});});} );
यह ठीक काम करता है, लेकिन मैं ग्राहक को एक अलग प्रतिक्रिया भेजना चाहता हूं अगर कोई नया दस्तावेज़ बनाया गया हो (स्थिति बीएसएन के साथ स्थिति 201) या मौजूदा एक अद्यतन किया गया है (स्थिति 204)।
क्या User.update
... user.update ({_ id: usr._id}, upsert डेटा, {{आईडी: usr._id}, {post}, "post-text" itemprop = "text" उतार: सच}, फ़ंक्शन (गलती, संख्या, एन) {if (err) {res.status (500) .json ({}); वापसी;} अगर (! N.updatedExisting) {/ * नया दस्तावेज़ * /} Res.status (204) .json ({});}); ...
n
इस तरह एक वस्तु है:
{updatedExisting: गलत, बढ़ाया: & lt; ObjectId & gt ;, N: 1, connectionId: 11, err: null, ok: 1}
अपडेट किया गया मौजूदा
संपत्ति है true
जब कोई दस्तावेज़ अपडेट किया गया - इसलिए इसे पहले बनाया गया था यदि यह झूठे
है, तो इसका मतलब है कि इस कॉल के दौरान नया दस्तावेज़ बनाया गया था।
Comments
Post a Comment