我正在尝试从另一个文件创建一个构造函数到我的项目,事情是,当y运行我的js时只识别构造函数if是否在同一个文件中声明,就像这样...... 这个作品
function docWeb(){
this.index = fs.readFileSync('./shalimar/index.html');
this.userLogin = fs.readFileSync('./shalimar/home-shalimar-user.html');
this.galery = fs.readFileSync('./shalimar/galeria.html');
this.basket = fs.readFileSync('./shalimar/carrito.html');
this.sells = fs.readFileSync('./shalimar/facturacion.html');
this.upload = fs.readFileSync('./shalimar/upload.html');
}
var pagina = new docWeb();
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(pagina.userLogin);
res.end();
return;
/*This Works*/

但是当我尝试将构造函数带到另一个文件
时
var mod= require('./modulos/mod1');
var pagina = new mod.docWeb();
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(pagina.userLogin);
res.end();
return;
/*mod1*/
var fs = require('fs');
exports.docWeb = () =>{
this.index = fs.readFileSync('./shalimar/index.html');
this.userLogin = fs.readFileSync('./shalimar/home-shalimar-user.html');
this.galery = fs.readFileSync('./shalimar/galeria.html');
this.basket = fs.readFileSync('./shalimar/carrito.html');
this.sells = fs.readFileSync('./shalimar/facturacion.html');
this.upload = fs.readFileSync('./shalimar/upload.html');
}

这就扔我了
TypeError: mod.docWeb is not a constructor
答案 0 :(得分:1)
exports.docWeb = docWeb();
docWeb()
会返回undefined
,因此您实际上并没有导出任何内容。
您可能想要导出函数本身。
答案 1 :(得分:1)
你需要改变这个:
exports.docWeb = docWeb();
到此:
exports.docWeb = docWeb;
您想要导出构造函数本身,而不是执行它的结果。你正在做的是调用构造函数,然后导出返回值。在Javascript中,当您将()
放在指示解释器立即执行该函数的符号之后。如果您只想引用该函数的引用,则使用不带()
的函数名。