私はバックエンドでfeathers.jsを使用しており、フロントエンドでリアクションを行い、画像をアップロードする方法を実装する必要があります。私はアップロードを処理するためにmulterを使用しています(そして私もバスボーイを使ってみました)が、実際の画像をアップロードできないか、少なくともreq.file
にアクセスしているようです。feathers.jsとmulterを使って写真をアップロードするには?
:
私が持っている/src/middleware/index.js
で
<form method="post" enctype="multipart/form-data" action="/picture/upload">
<input type="file" name="avatar" />
<input type="submit" value="Submit" />
</form>
:
'use strict';
const uploadPicture = require('./uploadPicture');
const handler = require('feathers-errors/handler');
const notFound = require('./not-found-handler');
const logger = require('./logger');
var multer = require('multer');
const upload = multer({ dest: '../../client/img'});
module.exports = function() {
// Add your custom middleware here. Remember, that
// just like Express the order matters, so error
// handling middleware should go last.
const app = this;
app.post('/picture/upload', upload.single('avatar'), uploadPicture(app));
app.use(notFound());
app.use(logger(app));
app.use(handler());
};
これはsrc/middleware/uploadPicture.js
次のとおりです。
'use strict';
module.exports = function(app) {
return function(req, res, next) {
console.log('req.file', req.file);
console.log('req.body', req.body);
};
};
req.file
は常に定義されていない、とreq.body
は含まれていませんアップロードした画像の名前。
基本的なExpressプロジェクトでmutlerとbusboyを使って試してみましたが、これは完全に動作していますので、feathers.jsのミドルウェアと何か関係があり、そのため、multerは要求オブジェクトにファイルを追加できません。このシナリオでは、画像のアップロードを処理する方法に
app.use(compress())
.options('*', cors())
.use(cors())
.use('/', serveStatic(app.get('client')))
.use(bodyParser.json())
.use(bodyParser.urlencoded({ extended: true }))
.configure(hooks())
.configure(rest())
.configure(services)
.configure(middleware);
任意の考えを:
これは、サーバインスタンスが実行されるところである、ミドルウェアがsrc/app.js
に定義されているためでしょうか?
[feathersjsで画像をアップロードするにはどうすればいいですか?](https://stackoverflow.com/questions/47174807/how-upload-image-with-feathersjs) –
@BinUry別の問題が解決しました。この質問は古いものです。 –