我应该将所有快速服务器包装在带有打字稿的类中吗?

Nic*_*lli 5 javascript node.js express typescript

我认为自己对nodeJs足够称职.我最近决定通过开始使用Typescript来改变我的应用程序.我最近看到很多博客(比如这个),在创建RESTful API时,它们将所有模块包装在一个类中,最重要的是应用程序的入口点.它是正确的还是我可以像往常一样继续用打字稿开发我的应用程序?

Est*_*ask 5

这是风格问题,而不是其他任何问题。但是Express并未为其单位推广OOP,将应用程序定义为类并没有明显的好处:

class App {

    public app: express.Application;

    constructor() {
        this.app = express();
        this.config();        
    }

    private config(): void{
        // support application/json type post data
        this.app.use(bodyParser.json());

        //support application/x-www-form-urlencoded post data
        this.app.use(bodyParser.urlencoded({ extended: false }));
    }

}

export default new App().app;
Run Code Online (Sandbox Code Playgroud)

App是一个不应重用的单例。它并没有提供类众所周知的任何好处,例如可重用性或可测试性。这是以下版本的不必要的复杂版本:

const app = express();

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

export default app;
Run Code Online (Sandbox Code Playgroud)