使用ES6和Sails.js的未定义类

时间:2015-12-03 14:14:24

标签: node.js ecmascript-6

我正在开发一个sails.js应用。我正在使用node v4.2.1。我正在尝试编写一个应该在我的api中调用的类。

在我的控制器中,我写了

'use strict';

class Sample {
    disp() {
        return "hello world";
    }
}

module.exports.Sample = Sample;

在我的api中,我正在尝试使用

//Included the class file above the controller.
//var Sample = require('../repositories/ExampleRespository.js');
test: function (req, res) {
    var sample = new Sample();
}

Sample似乎未定义。

我试过module.exports = Sample;我仍面临同样的错误。

我做错了吗?

如果问题很愚蠢,请道歉。

2 个答案:

答案 0 :(得分:3)

您导出Sample作为默认值,因此您的导入应如下所示:

var Sample = require('../repositories/example.js');

test: function (req, res) {
    var sample = new Sample();
    ...
}

要么是,要么将其导出为Sample

module.exports.Sample = Sample;

编辑:所以,要明确:

一个解决方案:

// example.js
...
module.exports = Sample;

// API file
var Sample = require('../repositories/example');

另一种解决方案:

// example.js
...
module.exports.Sample = Sample;

// API file
var Sample = require('../repositories/example').Sample;

答案 1 :(得分:0)

您的导出声明应为:

module.exports = Sample;

然后你将能够:

var Sample = require('../repositories/example');

注意:在require语句的末尾不需要.js。