快速服务器启动时运行异步代码

时间:2015-07-06 14:28:03

标签: javascript node.js express promise bluebird

previous question中我得到了类似的东西。

$('.showDetail').click(function() {
    $.ajax({
        'url': Routing.generate('detailsData', {'idData': $(this).val()}),
        'cache' : false,
        'success': function(loadDetail) {
            $('#window').html(loadDetail);
        }
    });
  });

我当时没有意识到这是正确地将从承诺返回的promiseRoute().bind(app).then(app.use) 添加到route但是如果在此声明之后有后续的app.use(例如,一个错误调用)表示路由器系统将在运行promise返回路由之前运行错误路由。

我必须在promise链中包含所有调用,并在promise中返回app,当我必须使用它时会导致更多问题。

是否有任何系统/库/等来管理这个?

我基本上希望在服务器启动时运行异步函数,而不是每次都在特定路由上运行。所以我需要运行app.use以上的代码或app.use内的代码来检查异步函数是否已运行。想法?

这是我的代码,可以直接跳转到app.use我的404请求。

/google

1 个答案:

答案 0 :(得分:0)

您要在此处执行的操作始终将app变量保持在最高级别。

let app = express()

app.use(...)

export defaults app

如果你想在app服务器启动之前运行一些东西,它应该包含启动服务器的请求。

checkIfDatabaseIsUp().then(() => {
  let server = http.createServer(app)
}) 
相关问题