重用代码以创建和更新实体的明智方法?

时间:2018-11-09 19:54:54

标签: javascript node.js express graphql

我目前正在使用NodeJS开发GraphQL API,我正在寻找一种在创建和更新实体功能之间共享代码的聪明方法。

上下文

在我的应用程序中,用户能够创建和更新他们自己的航班(作为飞行员),因此我有两个GraphQL输入字段(CreateFlightInputUpdateFlightInput),它们是从两个不同的突变中调用的。

问题

用户创建航班时,必须提供与其一起飞行的飞机。由于飞机由Mongo ID表示,因此API需要检查飞机是否存在以及用户是否可以看到它。但是,当用户更新航班时,需要进行相同的检查(因为用户可以更改使用的飞机)。当我使用两个分解器(变异)时,我不想两次编写相同的代码,特别是因为我对乘客领域有相同的问题。您会问我,如果所有检查都相同,为什么要使用两个不同的解析器?问题是服务器必须在create期间执行某些操作,但不能在update期间执行某些操作。总而言之,我们有两个解析器共享一些相似的代码,但不仅如此。

您是否知道我可以在哪里编写可以重用的代码?我在想一个带有布尔值的函数,该函数指示我们是否正在编辑,但是我知道是否有更好的方法。

感谢您的帮助。

0 个答案:

没有答案