Node.js 如何在featherjs中处理文件上传?

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

我试图使用multer处理feathersjs中的多部分表单文件上载,我尝试使用
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": {}
}