express中路由設定的坑-----1

來源:互聯網
上載者:User

標籤:

 1 router.get(‘/commodities/sortable‘, utils.logged, function (req, res) { 2     Commodity.find({force_top:true}).sort("-force_top position -at").exec(function(err, items) { 3       res.render(‘commodities/sortable‘, {items:items, current: req.user}); 4     }); 5     //Commodity.find({force_top:true},function(error,docs){ 6     //  if(error){ 7     //    console.log(error) 8     //  }else{ 9     //    res.render(‘commodities/sortable‘, {items:docs, current: req.user});10     //  }11     //});12   // res.render(‘commodities/sortable‘);13 14   });15   //商品排序216   router.post(‘/commodities/sortable‘, utils.logged, function (req, res) {17     var list = req.body.list;18     var bulk = Commodity.collection.initializeUnorderedBulkOp({useLegacyOps: true});19     _.each(list, function(item, i) {20       bulk.find({_id: new ObjectID(item.id)}).update({$set: {position: parseInt(item.position)}});21     });22 23     bulk.execute(function (err, result) {24       if(err) console.error(err);25       res.json(result);26     });27   });28 29 30 31   router.get(‘/commodities/:id‘, utils.logged, function (req, res) {32     thenjs.parallel([33       function(cb) {34         Commodity.findById(req.params.id).populate("tags").deepPopulate(commodity_deep_items).exec(function (err, item) {35           if (item) item.photos = _.sortBy(item.photos, ‘position‘);36           cb(err, item);37         });38       },39       function(cb) {40         Zan.find({commodity:req.params.id}).populate(‘user‘).exec(function(err, zans) { cb(err, zans); });41       },42       function(cb) {43         Category.find({ancestry:null}).exec(function(err, items) { cb(err, items); });44       },45       function(cb) {46         Comment.find({commodity:req.params.id}).populate(‘user‘).exec(function(err, comments) { cb(err, comments); });47       }48     ]).then(function(cb, results) {49       var taglist = {};50 51       _.each(TagList, function(t) {52         _.set(taglist, t.v, t.d);53       });54 55       res.render(‘commodities/edit‘, {item:results[0], zans:results[1], current: req.user, categories: results[2], comments:results[3], taglist: taglist, moment:utils.moment});56     });57   });

主要是第一行與第三十一的路由設定,此兩處路由設定若是顛倒位置,就會報錯,原因就是,第二處路由,

/commodities/:id

此處路由 :id 可以是任一字元串,包括第一行路由設定的 sortable 若是第三十一行的路由排在前面 當請求/commodities/sortable 時,會進入/commodities/:id 路由,進入後找不到就會產生錯誤;

此處不知道能不能加一個next()處理,若是錯誤 next()繼續執行,因為回呼函數中省掉了next參數

express中路由設定的坑-----1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.