Node.js 如何在featherjs中处理文件上传?
我试图使用multer处理feathersjs中的多部分表单文件上载,我尝试使用Node.js 如何在featherjs中处理文件上传?,node.js,express,multer,feathersjs,Node.js,Express,Multer,Feathersjs,我试图使用multer处理feathersjs中的多部分表单文件上载,我尝试使用blobService和blobStorage将req.picture中包含的文件复制到服务器,并获取文件的url,然后用返回的url替换req.picture。之后,req应移交给feathers mongoose以保存在数据库中。通过查阅官方文件,我得出了以下结论,但我一无所获 Items服务|也只有当我将blobService({Model:blobStorage})更改为createService(optio
blobService
和blobStorage
将req.picture
中包含的文件复制到服务器,并获取文件的url,然后用返回的url替换req.picture
。之后,req
应移交给feathers mongoose
以保存在数据库中。通过查阅官方文件,我得出了以下结论,但我一无所获
Items服务|也只有当我将blobService({Model:blobStorage})
更改为createService(options)
时,其他方法(如get)才起作用,否则不会起作用
// Initializes the `items` service on path `/items`
const createService = require('feathers-mongoose');
const createModel = require('../../models/items.model');
const hooks = require('./items.hooks');
const filters = require('./items.filters');
const multer = require('multer');
const multipartMiddleware = multer();
const blobService = require("feathers-blob");
const fs = require("fs-blob-store");
const blobStorage = fs("./public/items/pictures");
module.exports = function () {
const app = this;
const Model = createModel(app);
const paginate = app.get('paginate');
const options = {
name: 'items',
Model,
paginate
};
// Initialize our service with any options it requires
app.use('/items',
multipartMiddleware.single('picture'),
function(req, res, next){
req.feathers.file = req.picture;
req.picture = 'url to the file';
next();
},
blobService({ Model: blobStorage}));
// Get our initialized service so that we can register hooks and filters
const service = app.service('items');
service.hooks(hooks);
if (service.filter) {
service.filter(filters);
}
};
项目服务挂钩
const { authenticate } = require('feathers-authentication').hooks;
const fileUpload = require('../../hooks/file-upload').hooks;
module.exports = {
before: {
all: [ authenticate('jwt') ],
find: [],
get: [],
create: [fileUpload],
update: [fileUpload],
patch: [],
remove: []
},
文件上传挂钩(file upload.js)
这是我在《邮差》上得到的回应
{
"name": "GeneralError",
"message": "Cannot read property 'startsWith' of undefined",
"code": 500,
"className": "general-error",
"data": {},
"errors": {}
}
请尝试调试模式()以查看所获得错误的更多详细信息。我最终删除了blob存储和blob服务,并将multer配置为保存文件,但我仍然不知道如何使用feathers执行此操作-blob@v1shva你有这方面的例子吗。我也有问题
{
"name": "GeneralError",
"message": "Cannot read property 'startsWith' of undefined",
"code": 500,
"className": "general-error",
"data": {},
"errors": {}
}