【问题标题】:Make UploadFS work with angular2-meteor使 UploadFS 与 angular2-meteor 一起工作
【发布时间】:2016-06-09 04:41:35
【问题描述】:

我碰巧需要一个文件存储数据库,UploadFS 似乎是最好的选择。我的项目在 Angular2 typescript 和 Meteor 中。

meteor add jalik:ufs-gridfs

到目前为止,当我尝试像这样导入库时它失败了:

import {UploadFS} from 'meteor/jalik:ufs'

抛出的错误是找不到库(在客户端)。

我想可能是因为库在javascript,而项目的其余部分在typescript,所以我尝试写一个存根ufs.d.ts,首先是手工制作,然后是dstmake,然后是手工制作再次当我发现我必须导出模块 UploadFS 以便流星 (barbatus:typescript?) 可以看到它时:

declare module 'meteor/jalik:ufs' {
    export module UploadFS{
        interface UploadFS {
            ...
        }
    }
}

到目前为止,我的 ufs.d.ts 存根文件位于 typings/ 文件夹并链接到 main.d.ts。编译时没有错误。 Meteor 悲伤的数据库是正确创建的......但是当我尝试使用它时它坏了。

我发现 UploadFS 是未定义的,所以我认为它没有引用库,即使 Meteor 编译时没有任何错误。

所以我想我唯一剩下的就是手动将jalik:ufsjalik:ufs-gridfs 翻译成打字稿。那是对的吗?有没有更简单的方法让 ufs 与 angular2-meteor 一起工作?

您会使用其他存储解决方案吗?修复这个库或选择另一个库有什么建议吗?

【问题讨论】:

  • 嗨,我是这个包的作者,我没有用 ECMAS6 将它迁移到新语法(Meteor 1.3.x),你知道导入/导出命令,也许这会有所帮助?
  • 对不起。我是流星的新手。我会在夏天看一下,因为我依赖你的库来获取一些核心内容。

标签: javascript database meteor typescript angular2-meteor


【解决方案1】:

我已成功导入该库并使用此行取消警告:

import 'meteor/jalik:ufs'; declare let UploadFS:any;

请留意 https://github.com/meteor-typingshttps://github.com/Urigo/angular2-meteor/issues/102 以了解未来正确的类型定义。

您永远不必为了使用它而在 TypeScript 中重新实现 JavaScript 库。

【讨论】:

    【解决方案2】:
    import { UploadFS } from 'meteor/jalik:ufs';
    console.log('UploadFS', UploadFS);
    

    这给了我UploadFS 对象,我认为它完全独立于angular2-meteor,所以我认为jalik:ufs 应该可以正常工作,即使ts 编译器生成了这些警告。

    关于打字,那些警告很烦人,我知道 :) 但你现在可以假装你没有看到它们。

    这是我为 Angular1 制作的 jalik:ufs 的示例实现,但它与 Angular2 看起来几乎相同。

    http://www.angular-meteor.com/tutorials/socially/angular1/handling-files-with-collectionfs

    【讨论】:

    • 你在哪里对。但是当我看到错误时,我认为它无法正常工作,所以我什至没有检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多