Express在响应之前执行功能

时间:2017-07-15 12:53:46

标签: node.js express

var express    = require('express');     
var app        = express();                
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8080;    

var router = express.Router();             

router.get('/', function(req, res) {

  var test;
    function SomeFunction(){

      ....some function that calculates a value

      res.json({ message: 'Your value is' +  test }); 

    }






});

app.use('/api', router);


app.listen(port);

我想在返回之前执行一些函数来计算值。按原样,服务器将立即响应。我确信这是非常基本的,但我到处寻找,无法找到关于如何等待我的快递服务器在发出响应之前计算值的答案。

2 个答案:

答案 0 :(得分:1)

您没有在任何地方调用您的函数 SomeFunction 。如果你打电话,快递将等待。只需在函数定义后写: SomeFunction();

答案 1 :(得分:1)

var express    = require('express');     
var app        = express();                
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8080;    

var router = express.Router();             

router.get('/', function(req, res) {

  var test;
    function SomeFunction(res){

      ....some function that calculates a value

      res.json({ message: 'Your value is' +  test }); 

    }

    //call it with res parameter
    someFunction(res);





});

app.use('/api', router);


app.listen(port);