Nodejs + expressjs中的类成员inheritance

我不太了解类inheritance和上下文在nodejs + expressjs中是如何工作的。

我有3个文件:

api.js

class API { constructor () { this._id = Math.random() console.log("Instantiated id:" + this._id) } list (req, res, next) { console.log("Instantiated id:" + this._id) } } module.exports = API 

user.js的

 const API = require('./api.js') class UserAPI extends API { constructor () { super() } } module.exports = UserAPI 

route.js

 var UserAPI = require('./user.js') var user = new UserAPI() router.get('/', user.list); 

我想看到的是每次我做一个GET请求时启动相同的ID的ID。 但是,当我做GET请求我有: ERROR: TypeError: Cannot read property '_id' of undefined

如何获取基类中的成员?

谢谢 !

问题不是类的inheritance,而只是你使用list方法的方式。 您直接将它传递给router.get ,那将不起作用,因为您只传递对该函数的引用,而后者不知道UserAPI实例的UserAPI

你可以通过传递一个匿名函数给router.get来解决这个router.get ,然后执行user.list ,像这样:

route.js

 var UserAPI = require('./user.js') var user = new UserAPI() router.get('/', (req, res, next) => user.list(req, res, next));