👉
Strapiで-(ハイフン)が付いたServiceの関数を指定する方法
この記事は Strapi Advent Calendar 18日目の記事です
今回は短めの記事ですが、自分がStrapiのServiceの関数を指定するときにハマッた部分の解決方法を紹介します。
前提情報
今回は以下のディレクトリがStrapiプロジェクトのapi配下にあることを前提で解説します
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