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

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

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

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Node.js

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

0回答

702閲覧

nodejs express multer monaca-libを使ってAPI経由でファイルをアップロードしたい

maito

総合スコア4

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

Node.js

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

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2021/01/28 02:14

編集2021/01/28 02:16

前提・実現したいこと

nodejs
express
multer
monaca-lib
を使ってformで選択されたfileをクラウド上でmonacaにアップロードしたいのですが、うまくいきません。

どうすれば解決できるのでしょうか?

発生している問題・エラーメッセージ

{"status":"fail","code":500,"message":"Cannot create file: /data/monaca-projects/XXX/XXX/test.txt"}

該当のソースコード

javascript

1 2const express = require('express'); 3const fs = require('fs-extra'); 4 5const Monaca = require('monaca-lib').Monaca; 6const Multer = require('multer'); 7 8const multer = Multer({ 9 storage: Multer.memoryStorage(), 10 limits: { 11 fileSize: 5 * 1024 * 1024, // no larger than 5mb, you can change as needed. 12 } 13}); 14const monaca = new Monaca({clientType: 'api'}); 15 16const app = express(); 17 18app.post('/', multer.single('hoge'), (req, res) => { 19 20 monaca.login('メアド', 'パスワード').then(()=>{ 21 monaca._post_file('/project/xxx/file/save/' + encodeURIComponent('www/test.txt'), { 22 path: 'www/test.txt', 23 file: req.file.buffer 24 }).then(()=> { 25 res.send('完了'); 26 monaca.logout(); 27 }, (error)=>{ 28 res.send(error); 29 monaca.logout(); 30 }); 31 res.send('OK'); 32 monaca.logout(); 33 },(error)=>{ 34 res.send(error); 35 monaca.logout(); 36 }); 37 38}); 39 40 41app.get('/', (req, res) => { 42 res.send('<form action="/" method="post" enctype="multipart/form-data"><input type="file" name="hoge" /><input type="submit" value="送信" /></form>'); 43}); 44 45const PORT = process.env.PORT || 8080; 46app.listen(PORT, () => { 47 48}); 49

試したこと

npm startでlocalhost:8080にアクセスしてファイルを選択してsubmitしました。

ログインは正常に動作しました。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問