在其他文件的Nodejs中创建构造函数

时间:2017-11-20 16:33:04

标签: javascript node.js

我正在尝试从另一个文件创建一个构造函数到我的项目,事情是,当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

2 个答案:

答案 0 :(得分:1)

exports.docWeb = docWeb();

docWeb()会返回undefined,因此您实际上并没有导出任何内容。

您可能想要导出函数本身。

答案 1 :(得分:1)

你需要改变这个:

exports.docWeb = docWeb();

到此:

exports.docWeb = docWeb;

您想要导出构造函数本身,而不是执行它的结果。你正在做的是调用构造函数,然后导出返回值。在Javascript中,当您将()放在指示解释器立即执行该函数的符号之后。如果您只想引用该函数的引用,则使用不带()的函数名。