Saturday 15 May 2010

express - Destroying Documents with Nano in Node.js -



express - Destroying Documents with Nano in Node.js -

i working on building first rest api in node.js/express 4. i'm working couchdb via nano. i've got things downwards get, set , post, delete causing problems. i'm getting doc delete getting 404 in response. trying write proper test in mocha, how i'm getting 404, along testing hand postman.

here have far:

in route:

router.delete('/:bear_id', function(req, res, done) { console.log("deleting..." + req.params.bear_id); bears.get(req.params.bear_id, function(err, body, header) { if (!err) { bears.destroy(req.params.bear_id, body._rev, function(err, body, header) { if (!err) { res.send(200, { message: "deleted " + req.params.bear_id}); } }); } done(); }); });

in test:

it('delete api/bears should delete test_bear', function(done){ var options = { url: 'http://localhost:3001/api/bears/test_bear' }; settimeout( function() { request.del(options , function(err, res, body){ expect(res.statuscode).to.equal(200); expect(res.body).to.equal('{"message":"deleted test_bear"}'); done(err); }); }, 100); });

done() beingness called out of turn due asynchronous nature of node.js.

this causing express check next route route 404 or no route.

router.delete('/:bear_id', function(req, res, done) { console.log("deleting..." + req.params.bear_id); bears.get(req.params.bear_id, function(err, body, header) { if(err) { homecoming done(err); } bears.destroy(req.params.bear_id, body._rev, function(err, body, header) { if(err) { homecoming done(err); } homecoming res.send(200, { message: "deleted " + req.params.bear_id}); }); }); });

note: i'd suggest changing done next in routes improve describes actual process of express routing.

node.js express mocha

No comments:

Post a Comment