Автоматически установить URL загруженного файла KeystoneJS - PullRequest
0 голосов
/ 28 июня 2018

Как мне автоматически установить URL для загруженного файла в Keystone.js? Это модель для файла:

var keystone = require('keystone');
var Types = keystone.Field.Types;

var FileUpload = new keystone.List('FileUpload');

var myStorage = new keystone.Storage({
  adapter: keystone.Storage.Adapters.FS,
  fs: {
    path: keystone.expandPath('./public/uploads/files'), // required; path where the files should be stored
    publicPath: '/public/uploads/files', // path where files will be served
  }
});

FileUpload.add({
  name: { type: Types.Key, index: true},
  file: {
    type: Types.File,
    storage: myStorage,
  },
  url: {type: String}
});


FileUpload.defaultColumns = 'name, url';
FileUpload.register();

Я попытался установить свойство URL по умолчанию для чего-то вроде

'/public/uploads/files/ + this.name

Но контекст this - это просто пустой объектный литерал. В своих документах у Keystone есть пример, где они создают пользовательский интерфейс для загрузки изображений и задают метаданные загруженных файлов в отдельном вызове API, но я пытаюсь сделать это с помощью предоставленного им интерфейса администратора.

1 Ответ

0 голосов
/ 29 июня 2018

Для пояснения: вы пытаетесь сделать запись в базе данных Mongo полным путем к изображению, а не просто именем изображения?

Если мне нужно что-то добавить к имени файла, я делаю это на стороне шаблона, я думаю, вы не хотите этого делать? Может быть, если вы объясните вариант использования немного больше?

...