勉強がてらに
「送信された画像をoutフォルダに保存する」
という内容のlinebotを作成しています。
linebotの全体的な枠組みは以下のサイトをまねています。
https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d
fs.writeFile()
を用いて画像をoutフォルダに保存しようとしているのですが、うまく反応しません。
単純なことが原因かもしれませんが、作業が進んでいない状況です。
アドバイスをお願いします。
以下は用いているコードであり、★の部分が問題となっているfs.writeFile()です。
JaveScript
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 fs.writeFile("./out/test.jpg",event.message.image); 42 } 43 fs.writeFileSync("./out/test.txt","あいうえお"); 44 //fs.writeFile("./out/test.jpeg",event.image) 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}`);
回答1件
あなたの回答
tips
プレビュー