5

私は奇妙な状況を持っています...

Express.js、Node.js、および Mongoose Web アプリがあります。

ルートの 1 つに、respond.send(...) を呼び出すマングース コールバックがあります。ただし、コールバックの後に他に何もないため、自動的に next() ルートに移動すると思われます。

元:

//getItem 
app.get('/api/ItemOne', isUserValid, routes.getItem); 
//getAnotherItem
app.get('/api/getAnotherItem', isUserValid, routes.getAnotherItem);

//Routes
exports.getItem = function (req, res) {
  //console.log ('In getItem'); 
   getItem .findOne({ some_id : some_id}, function(err, getItem ){
      //console.log ('In getItem callback');
      res.send({
         itemName : getItem .itemName,
         itemValue : getItem .itemValue;
      });
   })
});

exports.getAnotherItem = function (req, res) { 
   //console.log ('In getAnotherItem');
   getAnotherItem.findOne({ some_id : some_id}, function(err, getAnotherItemRet){
      //console.log ('In getAnotherItem Callback');
      res.send({
         itemName : getAnotherItemRet.itemName,
         itemValue : getAnotherItemRet.itemValue;
      });
   })
});

コンソールに次の一連のメッセージが表示されます...

In getItem
In getAnotherItem
In getItem callback
In getAnotherItem callback

ルートが終了しないため、 next() が自動的に呼び出されると想定しています。

Q: 2 番目のルートが自動的に呼び出されないようにするにはどうすればよいですか。

4

2 に答える 2

4

reqにしてみてくださいres

// wrong
exports.getItem = function (res, req) {
// right
exports.getItem = function (req, res) {

(および についても同じgetAnotherItem)。

于 2013-04-21T18:22:30.727 に答える