在sailsJS

时间:2016-01-16 22:16:02

标签: javascript node.js sails.js ecmascript-6 babeljs

我使用es6 / 7在sails js中编写后端,并且我已经定义了一个执行后台任务的类。

现在从this StackOverflow帖子我了解到后台任务应该在config / bootstrap.js启动。所以我将以下内容放在该文件中:

import BackgroundService from '../api/services/backgroundService.js';

module.exports.bootstrap = function(cb) {
  backgroundService= new BackgroundService();
  backgroundService.run();

  cb();
};

现在我正在获得典型的转换器错误:

  import BackgroundService from '../api/services/backgroundService.js';
  ^^^^^^
SyntaxError: Unexpected reserved word[...]

或者,当我用require替换导入时:

TypeError: Cannot call a class as a function 

(指的是BackgroundService类的实例化)

这表示文件未及时或根本没有被转换 我还没找到解决办法。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不确定您的问题是否仍然存在,但确实如此:nodejs目前不支持es6 import。你可以采用旧的方式

const BackgroundService = require('../api/services/backgroundService.js');

或使用babel。对于帆,我建议sails babel

注意:根据您应用的全局配置,您根本不需要导入services。如果您已激活全局变量,则可以直接调用backgroundService