Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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/2/node.js/33.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 &引用;“家”;不是节点JS上的构造函数_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript &引用;“家”;不是节点JS上的构造函数

Javascript &引用;“家”;不是节点JS上的构造函数,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我正在使用委托自动加载我的应用程序模型、路由等。。。我有一个以ES6风格建模的模型,当我实例化她时,它向我抛出这个错误TypeError:app.src.models.Home不是构造函数 我尝试过使用ES5风格,但没有区别。委托人创建的对象包含模型,但我无法访问 那是我的班级: /*function Home() { } Home.prototype.getHomeData = function (conexao, callback) { conexao.query('select

我正在使用委托自动加载我的应用程序模型、路由等。。。我有一个以ES6风格建模的模型,当我实例化她时,它向我抛出这个错误
TypeError:app.src.models.Home不是构造函数
我尝试过使用ES5风格,但没有区别。委托人创建的对象包含模型,但我无法访问

那是我的班级:

/*function Home() {

}

Home.prototype.getHomeData = function (conexao, callback) {
    conexao.query('select * from tarefas', callback)
} //IT does not work like the item below, so I will keep using ES6
*/

class Home {
    constructor() {
        console.log('Construi')
    }

    getHomeData(conexao, callback) {
        conexao.query('select * from tarefas', callback)
    }
}
module.exports = function () {
    return Home
}
看: Server.js:

var express = require('express'),
    bodyparser = require('body-parser'),
    app = express();
var consign = require('consign');
consign()
    .include('./src/routes')
    .then('./src/config/db.js')
    .then('./src/models')
    .into(app);
console.log("I'm on server.js: ", app.src.models)
app.use(bodyparser.urlencoded({ extended: true }));
app.listen(3000, function () {
    console.log("Servidor ON");
});
module.exports = app;
控制台正确返回
我在server.js:{'home.model':[Function:home]}

当我从路线上下来时,它一直向我显示
app.src.models
有数据, 控制台输出:
我在home.js上,仍然有数据+{'home.model':[Function:home]}

但是当我尝试实例化这个类时,我抛出了上面引用的错误

module.exports = function (app) {
    app.get('/', function (req, res) {

       console.log("I'm on the home.js and still have data +", app.src.models)
        var conexao = app.src.config.db()
        var homeData = new app.src.models.Home();

        homeData.getHomeData(conexao, (err, result) => {
            if (err) {
                res.json(err)
            } else {
                res.json(result)
            }
        })
    });
} 
如果我尝试下面的方法,控制台将未定义:

console.log("I'm on the home.js and still have data +", app.src.models.Home)
如果你愿意,这是我的回购协议

暂定1:


在Home类中,我创建了
module.exports=new Home()
,它抛出了相同的错误

将您的Home类导出为:

module.exports = { Home };
并将其导入/使用为:

const { Home } = require('path/to/Home.js');
const home = new Home();
home.getHomeData(...)

将您的主类导出为:

module.exports = { Home };
并将其导入/使用为:

const { Home } = require('path/to/Home.js');
const home = new Home();
home.getHomeData(...)

在您的
Home
类中,导出类本身而不是函数
module.exports=Home
它会抛出以下错误类型错误:如果没有'new',则无法调用类构造函数Home.exports=new Home(),并返回初始错误:/
module.exports={Home}
?@TiagoSilveira您的类在哪里加载以及如何调用?你在哪里(在哪个文件的哪一行)得到关于丢失的
new
的类型错误?在你的
Home
类中,导出类本身而不是函数
module.exports=Home
它抛出这个错误类型错误:没有'new'就不能调用类构造函数Home.exports=new Home()并返回到初始错误:/
module.exports={Home}
?@TiagoSilveira类在哪里加载以及如何调用?你在哪里(在哪个文件的哪一行)得到关于丢失的
新的
的类型错误?它工作,但不带数据库信息。我如何知道他成功连接?这是预期的结果
newhome()
创建一个
Home
的新实例。糟糕,我查询的表是空的,哈哈,但是。。。托运人呢?这条路行得通!但是货物的装载机也应该工作,不是吗?我的意思是
app.src.models.Home()
它工作正常,但不带数据库信息。我如何知道他成功连接?这是预期的结果
newhome()
创建一个
Home
的新实例。糟糕,我查询的表是空的,哈哈,但是。。。托运人呢?这条路行得通!但是货物的装载机也应该工作,不是吗?我的意思是
app.src.models.Home()