流星找不到模块SyncedCron

时间:2017-01-16 04:45:21

标签: angular meteor angular2-meteor

我已经运行了命令:

  

meteor add percolate:synced-cron

添加到我的服务器/ main.ts后

SyncedCron.add({
    name: 'Crunch some important numbers for the marketing department',
    schedule: function(parser) {
    // parser is a later.parse object
    return parser.text('every 0.5 minutes');
  },
job: function() {
    return 1;
  }
});
SyncedCron.start();

当我启动服务器时,它正在说

  

找不到名字'SyncedCron'

我试图导入“synced-cron”也行不通。 我的流星版Meteor 1.4.2.3 有人可以帮忙吗?

4 个答案:

答案 0 :(得分:2)

首先要解决此问题,您需要导入此行

import {SyncedCron} from 'meteor/percolate:synced-cron';

导入此行后,您将面临另一个错误Cannot find module 'meteor/percolate:synced-cron
出现此错误是因为我们的typings.d.ts文件中没有percolate:synced-cron包的任何打字稿定义。因此,要删除此错误,您必须为percolate创建自己的打字稿定义:synced-cron。所以只需将这些行添加到您的typings.d.ts文件或@typings文件夹流星定义中。

declare module "meteor/percolate:synced-cron"{
  export module SyncedCron { 
    function add ({ name: string, schedule:(parser: any): any, job:(): any })
    function start(): any {}
  }
}

现在您不会收到与percolate相关的任何错误:synced-cron。

答案 1 :(得分:0)

阿米特。

很抱歉迟到的回复。

我已将你的代码粘贴到我的typings.d.ts中,我仍然得到server / main.ts(13,3):找不到名字' SyncedCron',下面是我的typings.d .ts文件。

/// <reference types="zone.js" />
/// <reference types="meteor-typings" />
/// <reference types="@types/underscore" />
/// <reference types="@types/node" />

declare module '*.html' {
  const template: string;
  export default template;
}

declare module '*.scss' {
  const style: string;
  export default style;
}

declare module '*.less' {
  const style: string;
  export default style;
}

declare module '*.css' {
  const style: string;
  export default style;
}

declare module '*.sass' {
  const style: string;
  export default style;
}

declare module 'meteor/tmeasday:publish-counts' {
  import { Mongo } from 'meteor/mongo';

  interface CountsObject {
    get(publicationName: string): number;
    publish(context: any, publicationName: string, cursor: Mongo.Cursor, options: any): number;
  }

  export const Counts: CountsObject;
}

declare module 'meteor/accounts-base' {
  module Accounts {
    function requestPhoneVerification(phoneNumber: string, callback?: Function): void;
    function verifyPhone(phoneNumber: string, code: string, callback?: Function): void;
  }
}

declare module "meteor/percolate:synced-cron"{
  export module SyncedCron { 
    function add ({ name: string, schedule:(parser: any): any, job:(): any })
    function start(): any {}
  }
}

答案 2 :(得分:-1)

是syched-cron真的需要在你的server.js上导入吗? 你能展示你的服务器/ main.ts吗?

答案 3 :(得分:-1)

这是代码

import { Meteor } from 'meteor/meteor';
import {SyncedCron} from 'meteor/percolate:synced-cron';

Meteor.startup(() => {
  SyncedCron.add({
    name: 'Crunch some important numbers for the marketing department',
    schedule: function(parser) {
      // parser is a later.parse object
      return parser.text('every 0.25 minutes');
    },
    job: function() {
      return console.log(1234);
    }
  });
});