Node / Express定义回调/路由器或外部的功能?

时间:2016-02-21 20:30:24

标签: javascript node.js express callback

我正在使用Node和express,我遇到了一个问题。例如,当遇到某条路线时,我经常需要执行一个回调函数。

如果我必须在回调中调用say,10个函数,我应该将这些函数定义为“up op”(在回调之外)还是在回调中定义它们?

似乎在回调中定义它们,虽然更容易(因为所有变量都将被定义)效率较低,因为每次调用回调时都会定义它们,但我不确定这一点。

例如:

var express = require('express');
var Products = require('../products.js');
var router = express.Router();                                                                                                                                                                                                          
// Should the function "getItem" be defined here                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

router.post('/', function (req, res) {                                                                                                                                                                                                  
  var info;                                                                                                                                                                                                                             
  var databaseUser;                                                                                                                                                                                                                                                                                                                                                                                                        
  var totalCost = 0;                                                                                                                                                                                                                    

 // Or defined here                                                                                                                                                                                                                                       
  function getItem (skunumber, callback) {                                                                                                                                                                                              
    Products.findOne({sku: skunumber}, function (err, product) {                                                                                                                                                                                                                                                                                                                                                                                
      product = product.toObject();                                                                                                                                                                                                     
      totalCost += product.price;                                                                                                                                                                                                                                                                                                                                                                                           
      callback = callback || function () {console.log(product.price);};                                                                                                                                                                 
      callback();                                                                                                                                                                                                                       
    });                                                                                                                                                                                                                                 
  }
}                                                                                                                                                                                                                              

或者甚至有所作为?

0 个答案:

没有答案