是否应将我所有的Express服务器包装在带有Typescript的类中?

时间:2018-10-22 12:33:50

标签: javascript node.js typescript express

我认为自己足够胜任nodeJs。我最近决定通过开始使用Typescript进行开发来更改我的应用程序。最近,我看到许多博客(like this one)创建RESTful API时,它们将所有模块以及应用程序的所有入口点包装在一个类中。是正确的还是我可以像以前一样继续使用打字稿来开发我的应用?

1 个答案:

答案 0 :(得分:3)

这是样式问题,而不是其他任何问题。但是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;

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

const app = express();

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

export default app;