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