目前,我很难解决这个问题。我想将类函数拆分为多个文件。我试图在主类中要求它们合并它们,但是您知道...
//server.js
module.exports.server = () => {
console.log('it works')
}
//handle.js
const server = require('./server')
class handle extends server{
//...
}
module.exports = new handle()
//test.js
const handle = require('./handle')
handle.server() //error
最好的问候
答案 0 :(得分:0)
要使用其他文件中的功能,必须通过JSON导出。例如:
//poker.js
function shuffle(deck){
//shuffle
}
function dealCards(deck){
shuffle(deck);
//deal
}
function createDeck(){
//creates Deck
}
如果只希望使用createDeck和dealCards函数,则可以这样导出它:
module.exports={
deal:dealCards,
createDeck: createDeck
}
您可以像这样使用它:
//test.js
var poker=require('./poker.js');
var deck= poker.createDeck();
poker.deal(deck);
答案 1 :(得分:0)
首先,箭头功能与普通功能不相同。
由于服务器为()=>{}
,因此出现错误。对于class
至extend
,
扩展名的.prototype必须为Object或null。
MDN Web文档:extends keyword
'use strict';
var serverAsArrowFunction = () => {
};
var serverAsNormalFunction = function () {
};
var o = { //this is what happens
server: () => {
console.log('it works');
}
};
console.log('NormalFunction', serverAsNormalFunction.prototype); //{}
console.log('Arrow function', serverAsArrowFunction.prototype); // undefined
console.log('Object', o.prototype); //undefined
接下来,您将导出为Object
。用正常功能代替箭头功能。
server.js
module.exports.server = function () {
console.log('it works -- from server.js');
};
handle.js
const { server } = require('./server');
class handle extends server {
constructor() {
super();
console.log('constructor -- from handle.js');
}
}
module.exports = new handle();
test.js
const handle = require('./handle');
console.log(handle);
console.log('-- from test.js');
运行代码,
node test.js
日志
它可以正常工作-来自server.js
构造函数-来自handle.js
处理{}
-来自test.js