質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

1908閲覧

milkcocoaからslackへの通知がうまくいかない

msk6252

総合スコア12

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

1クリップ

投稿2016/02/29 08:32

編集2016/02/29 08:33

プログラミング初心者です

###実現したいこと
現在、ポートフォリオサイトを作成しています。
お問い合わせ部分をnode.js/JavaScriptを用いて実現を試みています。

下記のサイトを参考に作成しましたが、お問い合わせフォーム→milkcocoaへのデータストアはできています。しかし、milkcocoaからslackへの通知がうまくいきません。
どなたかわかる方、ご教示ください。

Qiita - milkcocoaで静的サイトにslack連携のお問い合わせフォーム

###発生している問題・エラーメッセージ
デーモン化はpm2で行っています。
pm2 logs で確認した時に以下のエラーが表示されます。
エラー中にsocket.io-clientがないとでているのですが、インストールはされています。

app-0 (err): at Function.Module._load (module.js:280:25) app-0 (err): at Function._load (/usr/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21) app-0 (err): at Module.require (module.js:364:17) app-0 (err): at require (module.js:380:17) app-0 (err): at Object.<anonymous> (/var/www/web/js/milkcocoa/index.js:1:2147) app-0 (err): at Module._compile (module.js:456:26) app-0 (err): at Object.Module._extensions..js (module.js:474:10) app-0 (err): at Module.load (module.js:356:32) app-0 (err): at Function.Module._load (module.js:312:12) app-0 (err): Error: Cannot find module 'socket.io-client' app-0 (err): at Function.Module._resolveFilename (module.js:338:15) app-0 (err): at Function.Module._load (module.js:280:25) app-0 (err): at Function._load (/usr/lib/node_modules/pm2/node_modules/pmx/lib/transaction.js:62:21) app-0 (err): at Module.require (module.js:364:17) app-0 (err): at require (module.js:380:17) app-0 (err): at Object.<anonymous> (/var/www/web/js/milkcocoa/index.js:1:2147) app-0 (err): at Module._compile (module.js:456:26) app-0 (err): at Object.Module._extensions..js (module.js:474:10) app-0 (err): at Module.load (module.js:356:32) app-0 (err): at Function.Module._load (module.js:312:12)

###ソースコード
app.js

JavaScript

1var config = require('/var/www/web/js/config.js'); 2var request = require('/usr/lib/node_modules/request'); 3var MilkCocoa = require('/usr/lib/node_modules/milkcocoa'); 4var milkcocoa = new MilkCocoa('https://'+ config.appid +'.mlkcca.com'); 5var ds = milkcocoa.dataStore("データストア名"); 6 7ds.on('push', function(data) { 8 9 var mes = '「' + data.value.name + '('+ data.value.email +')」さんから問い合わせがありました。'; 10 mes += '[' + data.value.title + ']'; 11 mes += data.value.body; 12 13 var options = { 14 url: config.slack.url, 15 form: 'payload={"channel": "'+config.slack.channel+'", "username": "'+config.slack.username+'", "text": "'+ mes +'"}', 16 json: true 17 }; 18 19 request.post(options, function (error, response, body) { 20 if (!error && response.statusCode == 200) { 21 console.log(body); 22 }else{ 23 console.log('error: '+ response.statusCode); 24 } 25 }); 26 27});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Error: Cannot find module 'socket.io-client'

って書いてありますけど。

モジュールが足りないってことですかね。

投稿2016/03/03 01:41

ogaaaan

総合スコア765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ogaaaan

2016/03/03 01:44

別件ですが気になったので。 var MilkCocoa = require('/usr/lib/node_modules/milkcocoa'); var milkcocoa = new MilkCocoa('https://'+ config.appid +'.mlkcca.com'); これ、大文字小文字で別ですが、紛らわしいので変えたほうがよいかもしれないすね。 通常、モジュールはモジュール名を変数に使うことが良くありますので、 var milkcocoa = require('/usr/lib/node_modules/milkcocoa'); var mk = new MilkCocoa('https://'+ config.appid +'.mlkcca.com'); なんてやると、寝覚め良いかもしれないすね。
msk6252

2016/03/03 14:25 編集

回答ありがとうございます。 Error: Cannot find module 'socket.io-client'に関してですが、導入はされているようです。 グローバルでのインストールなどもやってみましたが、同じエラーが発生してしまいました。 コードについてですが、確認すると可読性がよろしくない部分が多々ありました。 エラーの発生にもつながるので、これから改善していきたいと思います。 ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問