From 0f6b6a2f2b8ba2ab167d316b97ca33063f7fe932 Mon Sep 17 00:00:00 2001 From: dead_horse Date: Wed, 19 Feb 2014 17:40:44 +0800 Subject: [PATCH] support json result in search, fixed #189 --- controllers/web/package.js | 9 ++++++++- test/controllers/web/package.test.js | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/controllers/web/package.js b/controllers/web/package.js index 8d4bb0044..af9c437f6 100644 --- a/controllers/web/package.js +++ b/controllers/web/package.js @@ -120,7 +120,14 @@ exports.search = function (req, res, next) { if (err) { return next(err); } - + // return a json result + if (req.query && req.query.type === 'json') { + return res.json({ + keyword: word, + packages: result.searchMatchs, + keywords: result.keywordMatchs + }); + } res.render('search', { title: 'Keyword - ' + word, keyword: word, diff --git a/test/controllers/web/package.test.js b/test/controllers/web/package.test.js index 40d0781bb..2a09c3154 100644 --- a/test/controllers/web/package.test.js +++ b/test/controllers/web/package.test.js @@ -129,6 +129,13 @@ describe('controllers/web/package.test.js', function () { .expect(/Packages match/, done); }); + it('should list by keyword with json ok', function (done) { + request(app) + .get('/browse/keyword/cnpm?type=json') + .expect(200) + .expect('content-type', 'application/json; charset=utf-8', done); + }); + it('should list no match ok', function (done) { request(app) .get('/browse/keyword/notexistpackage')