👉

Strapiで-(ハイフン)が付いたServiceの関数を指定する方法

2020/12/22に公開

この記事は Strapi Advent Calendar 18日目の記事です
https://qiita.com/advent-calendar/2020/strapi

今回は短めの記事ですが、自分がStrapiのServiceの関数を指定するときにハマッた部分の解決方法を紹介します。

前提情報

今回は以下のディレクトリがStrapiプロジェクトのapi配下にあることを前提で解説します
Image from Gyazo

memberは実装するWebサービスの会員情報で、member-confidentialはそのメンバーの非公開情報を扱うディレクトリみたいなものです。

通常ののアクセス

上記の例でいうとmember のディレクトリを指します
この場合のServiceの関数を指定する場合は基本的には

strapi.services.member.serviceの関数

というように書くかと思います。
具体的には、Createの場合は以下の様な感じになります。

strapi.services.member.create(createdData);

ハイフン付きのパスへのアクセス

さて、member-confidential のServiceの関数を指定する場合、上記と同じ様に

strapi.services.member-confidential.create(createdData);

と書けばいいのでは?と思いますが、これでは実行時にエラーになってしまいます。

どうすればいいかというと、

strapi.services['サービスのパス'].サービスの関数()

と書けばOKで、具体的には

strapi.services['member-confidential'].create(createdData);

と書くようにすれば、ハイフンがついたディレクトリのServiceの関数を指定することができます。

Discussion