有没有办法在 REST API 中访问快递的应用程序?



查看Massive的文档,节省数据库连接执行时间的方法是将连接对象保存一次到Express的应用程序设置中。我的问题是,当REST API模块化时,如何访问Express的应用程序变量?这个问题的一个例子:

app.ts:

import express = require('express');
import greeter = require('./api/greeter');
var app = express();
app.get('/api/greeter', greeter.get);

greeter.ts:

import express = require("express");
function get(req: express.Request, res: express.Response, next: Function): any   
{
    // The this object seems not the Express's app object.
    // console.log(this)        
    // How to access Express's app variable here?        
    // var db = app.get('db');
    db.item.findOne({item_id : 1}, (err, item) => {
        res.json(item);
    }); 
}

我在get RequestHandler中检查了这个对象,这个对象似乎不是Express的应用对象。也检查了req和res参数,看起来Express的app对象也不在那里。


谢谢@robertklep

Express的TypeScript定义没有更新。为了TypeScript用户的利益,只需通过indexer访问应用即可。如此:

import express = require("express");
export function get(req: express.Request, res: express.Response, next: Function): any {
    var app : express.Application = req["app"];
    var db = app.get('db');

req.appres.app都有

最新更新