2017-01-14 11 views
0

我想在我的keystone.js应用程序中使用Cloudinary调整和更改上传图像的质量。在带有把手的keystone.js中为CloudinaryImage对象应用下划线方法

所有关于如何在云中使用下划线方法的例子(在github上)都用pug/jade写成。例如见(从https://github.com/keystonejs/keystone-demo/blob/master/templates/views/gallery.jade):

img(src=image.fill(300,300), alt=gallery.name + ' image ' + (i+1)).img-thumbnail 

怎样才能转化为把手呢?我对玉/帕格不熟悉,不知道我到底在想什么。

回答

0

几个月大,但我敲打我的头靠在墙上的这个自己。我终于“开枪”,直到我发现什么工作。这对我来说很有用:

  1. 把代码放在路径文件夹中的javascript文件中,基本上是控制器。
  2. 在该文件中,将代码放在exec方法中。以下是我在about.js文件中为变量locals.myPicture所做的一个片段。

    var keystone = require('keystone'); 
    
    exports = module.exports = function (req, res) { 
    
    var view = new keystone.View(req, res); 
    var locals = res.locals; 
    
    // Set locals 
    locals.section = 'about'; 
    locals.welcome = ""; 
    locals.background; 
    locals.myPicture; 
    
    view.on('init',function (next) { 
        var q = keystone.list('About').model.find().where('defaultAbout').eq(true); 
    
        q.exec(function (err, result) { 
         locals.welcome = result[0].welcome; 
         locals.background = result[0].backGround.url; 
         locals.myPicture = result[0]._.heroImage.fit(400,400); 
    
         next(err); 
        }); 
    }) 
    
    
    
    // Render the view 
    view.render('about'); 
    }; 
    

对于某些方面,我有什么地方可以有多个配置文件页面。字段defaultAbout是一个布尔字段,用于将配置文件设置为关于约页中显示的默认配置文件。另外,我正在使用Handlebars,但在关于下划线方法的视图中,我不必做任何事情。

对于多个图像,我想你可以用“for”循环做同样的事情,但我不必那样做......但是。希望这有助于某人,尽管我不能保证我这样做是最好的做法。

0

请注意,这是类似的例子,而不是您所指的实际代码。

假设

Image = function(url) { 
    this.url = url; 
    this.fill = (sizeX, SizeY) => { 
     return `${this.url}/${sizeX}x${sizeY}.png`; 
    } 
} 


galleries = [ 
    { 
     name: 'Gallery1', 
     images: [ 
      new Image('img/gallery/1/image/1'), 
      new Image('img/gallery/1/image/2') 
     ] 

    }, 
    { 
     name: 'Gallery2', 
     images: [ 
      new Image('img/gallery/2/image/1'), 
      new Image('img/gallery/2/image/2'), 
      new Image('img/gallery/2/image/3') 
     ] 
    } 

]; 

然后按照

for gallery in galleries 
    for image in gallery 
     img(src=image.fill(300,300), alt=gallery.name + ' image ' + (i+1)).img-thumbnail 

相当于

<img class="img-thumbnail" src="img/gallery/1/image/1/300x300.png" alt="Gallery1 image 1" /> 
<img class="img-thumbnail" src="img/gallery/1/image/1/300x300.png" alt="Gallery1 image 2" /> 

<img class="img-thumbnail" src="img/gallery/2/image/1/300x300.png" alt="Gallery2 image 1" /> 
<img class="img-thumbnail" src="img/gallery/2/image/2/300x300.png" alt="Gallery2 image 2" /> 
<img class="img-thumbnail" src="img/gallery/2/image/3/300x300.png" alt="Gallery2 image 3" />