Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义导入类中的方法_Javascript_Meteor_Ecmascript 6 - Fatal编程技术网

Javascript 未定义导入类中的方法

Javascript 未定义导入类中的方法,javascript,meteor,ecmascript-6,Javascript,Meteor,Ecmascript 6,我正在尝试将第三方API集成到我的meteor.js应用程序中。 所以这个想法是,当在/blog路由上时,应用程序应该调用外部类的方法 router.js: blog.js: 为了启用ES2015,我正在使用最新的meteor 1.4.2.3和以下npm包: "babel-cli": "^6.18.0", "babel-core": "^6.18.2", "babel-loader": "^6.2.8", "babel-preset-es2015": "^6.18.0", "babel-runt

我正在尝试将第三方API集成到我的meteor.js应用程序中。 所以这个想法是,当在/blog路由上时,应用程序应该调用外部类的方法

router.js:

blog.js:

为了启用ES2015,我正在使用最新的meteor 1.4.2.3和以下npm包:

"babel-cli": "^6.18.0",
"babel-core": "^6.18.2",
"babel-loader": "^6.2.8",
"babel-preset-es2015": "^6.18.0",
"babel-runtime": "^6.18.0",
"meteor-node-stubs": "^0.2.4",
"webpack": "^1.13.3"

我的设置中是否缺少任何不能称为blog.init的内容?

我想您应该尝试导入classnot类实例。因此,您不能调用方法

将您的blog.js更改为:

class Blog {
  constructor(){
    ...
  }

  init() {
    console.log('init blog api');
    ...
  }
}
export default new Blog();

我想您应该尝试导入类而不是类实例。因此,您不能调用方法

将您的blog.js更改为:

class Blog {
  constructor(){
    ...
  }

  init() {
    console.log('init blog api');
    ...
  }
}
export default new Blog();

Yan Mayatskiy和Gothdo在他们的评论中回答了这个问题,谢谢。 如果有人在寻找正确答案:

我需要实例化我导入的类,如下所示:

import Blog from 'blog';
const blog = new Blog();
blog.init();

Yan Mayatskiy和Gothdo在他们的评论中回答了这个问题,谢谢。 如果有人在寻找正确答案:

我需要实例化我导入的类,如下所示:

import Blog from 'blog';
const blog = new Blog();
blog.init();

如果您想要导出一个类,您需要在以后实例化它,除非它是一个带有一些静态方法的类

export class Logger {
    static info(message) {
        console.log(`Info: ${message}`);
    }

    static error(message) {
        console.log(`Error: ${message}`);
    }
}

export default Logger;
让我们假设这是一个只有静态方法的助手类

export class Logger {
    static info(message) {
        console.log(`Info: ${message}`);
    }

    static error(message) {
        console.log(`Error: ${message}`);
    }
}

export default Logger;
因此,您可以直接导入并使用它

import Logger from "../../../../utils/Logger";
...
Logger.Info("...");

如果您想要导出一个类,您需要在以后实例化它,除非它是一个带有一些静态方法的类

export class Logger {
    static info(message) {
        console.log(`Info: ${message}`);
    }

    static error(message) {
        console.log(`Error: ${message}`);
    }
}

export default Logger;
让我们假设这是一个只有静态方法的助手类

export class Logger {
    static info(message) {
        console.log(`Info: ${message}`);
    }

    static error(message) {
        console.log(`Error: ${message}`);
    }
}

export default Logger;
因此,您可以直接导入并使用它

import Logger from "../../../../utils/Logger";
...
Logger.Info("...");

您需要执行var blog=newblog;然后您将有init-blog.init,您正在导出一个类,而不是它的实例。您应该从“../imports/scripts/Blog”导入Blog;然后const blog=new blog;。您需要执行var blog=newblog;然后您将有init-blog.init,您正在导出一个类,而不是它的实例。您应该从“../imports/scripts/Blog”导入Blog;然后const blog=new blog;。