自动设置KeystoneJS上传的文件网址

时间:2018-06-28 05:11:02

标签: node.js mongodb express mongoose keystonejs

如何在Keystone.js中自动设置上传文件的URL?这是文件的模型:

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 :(得分:0)

为了澄清:您正在尝试使Mongo数据库中的条目成为映像的完整路径,而不仅仅是映像名称?

如果我需要在文件名后面附加一些内容,则可以在模板端进行操作,我想您不想这样做吗?也许您再解释一下用例?