gpt4 book ai didi

meteor - Graphicsmagick 包错误

转载 作者:行者123 更新时间:2023-12-01 22:24:32 25 4
gpt4 key购买 nike

我尝试使用 cfs:graphicsmagick 包生成缩略图,但生成的只是一个空图像。

当我启动服务器时,一切看起来都很好:

I20150108-10:43:14.698(-8)? => GraphicsMagick found
I20150108-10:43:14.901(-8)? available
=> Meteor server restarted

但似乎 gm 不可用:

if (gm.isAvailable) {
console.log("gm is available");
}

控制台抛出错误:

Uncaught TypeError: Cannot read property 'isAvailable' of undefined

最佳答案

查看docs ,似乎 gm 作用域仅在服务器端可用,所以这里没有问题,您有 console.log,很漂亮

现在你可以像这样在 fsCollection 上使用

Images = new FS.Collection("images", {
stores: [
new FS.Store.FileSystem("images"),
new FS.Store.FileSystem("thumbs", {
transformWrite: function(fileObj, readStream, writeStream) {
// Transform the image into a 10x10px thumbnail
gm(readStream, fileObj.name()).resize('10', '10').stream().pipe(writeStream);
}
})
],
filter: {
allow: {
contentTypes: ['image/*'] //allow only images in this FS.Collection
}
}
});

记住gm它仅在服务器上可用,因此在/server上使用它或在if(isServer)上使用它

试试这个

    if (Meteor.isServer) {
if (gm.isAvailable) {
console.log("gm is available and this console.log was printed from my own code");
}
}

告诉我是否有效

更新答案

如果您在服务器/客户端上声明 FS.collection,我建议您像这样在 /lib/collection.js 上声明集合

      //collections.js
Adopcion = new FS.Collection("Adopcion", {
stores: [
new FS.Store.FileSystem("images"),
new FS.Store.FileSystem("thumbs", {
transformWrite: function(fileObj, readStream, writeStream) {
// Transform the image into a 10x10px thumbnail
gm(readStream, fileObj.name()).resize('10', '10').stream().pipe(writeStream);
}
})
]
});

并在同一文件上进行订阅 //集合.js //订阅 if(Meteor.isClient) { Meteor.subscribe('Adopcion'); }现在在 /server/publish.js 上,您只需执行发布功能

//Publish methods
Meteor.publish('Adopcion', function(){
return Adopcion.find();
});

这样就不需要Meteor.methods({})了, meteor 首先会加载它的集合,并且它们在客户端/服务器上都可用

看看并告诉我是否适合您

关于meteor - Graphicsmagick 包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27847573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com