我碰巧需要一个文件存储数据库,而UploadFS似乎是最好的选择。我的项目是Angular2打字稿和流星。
meteor add jalik:ufs-gridfs
到目前为止,当我尝试像这样导入库时,它失败了:
import {UploadFS} from 'meteor/jalik:ufs'
引发的错误--它找不到库(在客户端)。
我认为这可能是因为库在javascript中,而项目的其余部分在typescript中,所以我尝试编写一个存根( stub ufs.d.ts ),首先手工制作,然后用dstmake编写,然后当我发现必须导出模块UploadFS时再次手工编写,以便使流星(barbatus:typescript?)可以看到:
declare module 'meteor/jalik:ufs' {
export module UploadFS{
interface UploadFS {
...
}
}
}到目前为止,我的ufs.d.ts存根文件位于typings/文件夹中,并在main.d.ts中链接。编译时没有错误。流星悲伤的DB被正确地创建..。但当我试着用它的时候它坏了。
我发现UploadFS是未定义的,所以我认为它没有引用库,尽管Meteor编译时没有任何错误。
所以我想我唯一剩下的就是用手把jalik:ufs和jalik:ufs-gridfs翻译成打字稿。对吗?有没有更容易的方法让ufs在英古拉2-流星上工作?
你会使用其他的存储解决方案吗?有什么建议吗?要么修复这个图书馆,要么选择另一个?
发布于 2016-06-02 13:02:11
import { UploadFS } from 'meteor/jalik:ufs';
console.log('UploadFS', UploadFS);这给了我UploadFS对象,我认为它完全独立于angular2-meteor,所以我认为jalik:ufs应该工作得很好,即使是由ts编译器生成的警告。
关于打字,我知道,这些警告非常恼人:)但你现在可以假装你没有看到它们。
下面是我为Angular1创建的Angular1的一个示例实现,但是它在Angular2中看起来几乎是一样的。
http://www.angular-meteor.com/tutorials/socially/angular1/handling-files-with-collectionfs
发布于 2016-06-08 20:41:35
我正在成功导入该库,并使用以下行来消除警告:
import 'meteor/jalik:ufs'; declare let UploadFS:any;注意https://github.com/meteor-typings和https://github.com/Urigo/angular2-meteor/issues/102,以便在将来找到合适的类型定义。
为了使用JavaScript库,您不需要在TypeScript中重新实现它。
https://stackoverflow.com/questions/37339580
复制相似问题