我最近开始学习Node.js.我目前有一个使用Express和FiRestore处理前端请求的后端项目,我正在try 实现类和子类,因为该项目变得越来越大,所以我想对方法进行排序并将它们划分为文件,但由于某些原因,我不能在子类RouteProducts上扩展主类,在本例中是Server.
这就是我到目前为止try 过的:
Index.js:
//Importing subclasses
let RouteProducts = require('./requests/routeProducts.js');
class Server {
constructor(_app,_db){
this.app = _app;
this.db = _db;
this.initExpress();
this.start();
}
initExpress(){
this.app.use(express.json());
this.app.use(cors());
}
start(){
this.app.listen(process.env.PORT, () => console.log("Running on port "+process.env.PORT));
}
}
module.exports = Server;
//Initializing all classes in order
new Server(express(),config);
new RouteProducts();
RouteProducts.js:
let Server = require('../index.js');
const handleProducts = require('./handleCRUD/handleProducts.js');
class RouteProducts extends Server {
constructor(_app,_db){
super(_app,_db);
this.getAllProducts();
}
getAllProducts(){
_app.get("/read/product/", async (req, res) => {
await handleProducts.getAllProducts(_db,res);
});
}
}
module.exports = RouteProducts;
当我使用npx nodemon index.js运行项目时,我收到以下错误(即使我 comments new RouteProducts();):
class RouteProducts extends Server {
^
TypeError: Class extends value [object Object] is not a constructor or null
at Object.<anonymous> (C:\Users\Estaniel\Documents\Proyectos\source-shop_back\requests\RouteProducts.js:5:29)
at Module._compile (node:internal/modules/cjs/loader:1241:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
at Module.load (node:internal/modules/cjs/loader:1091:32)
at Module._load (node:internal/modules/cjs/loader:938:12)
at Module.require (node:internal/modules/cjs/loader:1115:19)
at require (node:internal/modules/helpers:130:18)
at Object.<anonymous> (C:\Users\Estaniel\Documents\Proyectos\source-shop_back\Index.js:10:21)
at Module._compile (node:internal/modules/cjs/loader:1241:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
Node.js v20.7.0
[nodemon] app crashed - waiting for file changes before starting...
关于这一点我找了很多,但我找不到有什么问题.我把module.exports = Server改成了module.exports = {Server},但这不起作用.