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

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

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

489閲覧

linebotに送信した文字・画像を保存したい。

akihir

総合スコア39

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/05/03 08:48

根本的にサーバ間の処理がわかっていないことも問題ですが、ひとまずあるサイトをまねてlinebotを作成しました。

https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d

私が作成したいlinebotは
「画像を送信すると画像をフォルダに保存するようにしたい」
を目指して練習がてら作成しています。
次のステップとして、ひとまず
fs.writeFileSync()
を用いて文章をtxtファイルであるフォルダに保存するようにしたいと考えています。
ただどのように構成すればよいかわからず手が止まっている状況です。
以下のコードを用いているのですが、
fs.writeFileSync("/out/test.txt","あいうえお");
の部分が反応せず、原因がわからない状況です。
アドバイスを頂けたらと思い、ご質問しました。

以下のコードは★の部分でoutフォルダにtest.txtを作成する内容となっています。

JavaScript

1'use strict'; 2//以下のように記述することで以降は「fs」を使ってさまざまなファイル操作のメソッドを使うことができる。 3const fs = require('fs'); 4//require:モジュールを選択する 5//post処理 6const bodyParser = require('body-parser'); 7//ExpressはそのNode.jsでの王道的な開発をスピードアップするためのフレームワーク 8const express = require('express'); 9//使用するlineアプリを選択する 10const line = require('@line/bot-sdk'); 11//使用するport番号を選択する 12const PORT = process.env.PORT || 3000; 13const config = { 14 channelSecret: '適切なものを入れる', 15 channelAccessToken: '適切なものを入れる' 16}; 17 18//expressを使用してWebアプリケーションなどを作る際、最初に呼び出されるスクリプトファイル。javaなどのmain関数と同じイメージ 19const app = express(); 20 21 22//HTTP通信には、いくつかの仕様が取り決められています。 23//GET, POSTというのは、仕様で取り決められたHTTPメソッドというものの一部です。 24//GETはURLに付加してリクエストします//POSTはBodyに含めてリクエストします。 25//GETはURLに直接付加するので目でパラメータを見ることができます。 26//POSTはBodyに含めるので目で見ることはできません。 27 28 29//expressでpostを受け取る 30app.post('/webhook', line.middleware(config), (req, res) => { 31 console.log(req.body.events); 32 Promise 33 .all(req.body.events.map(handleEvent)) 34 .then((result) => res.json(result)); 35 } 36}); 37 38const client = new line.Client(config); 39function handleEvent(event) { 40 if (event.type !== 'message' || event.message.type !== 'text') { 41 return Promise.resolve(null); 42 } 43 var fs=require("fs"); 44 →★fs.writeFileSync("/out/test.txt","あいうえお"); 45 return client.replyMessage(event.replyToken, { 46 type: 'text', 47 text: event.message.text //実際に返信の言葉を入れる箇所 48 }); 49} 50 51app.listen(PORT); 52console.log(`Server running at ${PORT}`);

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

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

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

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

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

guest

回答1

0

ベストアンサー

ファイルを出力するpathが間違っている可能性はありませんか。
jsファイルと同じ階層のoutというフォルダに出力する場合は/out/test.txtではなく./out/test.txtとする必要があります。

投稿2019/05/04 02:14

mistn

総合スコア1191

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

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

akihir

2019/05/04 14:14

上手く保存することができました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問