我有一个运行良好的大型项目。今天我意识到我需要在一个类中改变一种方法。所以我通过添加一行更改了 Task.destroy() 中的一种方法:
public destroy(clientId: string, userData: UserData, taskData: TaskData): Promise<boolean> {
const tasks = Task.getTasks();
new --> const lists = List.getLists();
assert(Model.isDataOnly(taskData));
// remove this task from all the lists....
}
在此更改之前,我的服务器按预期运行。在重大更改之后,当我运行我的服务器时,我看到:
NODE_ENV: ====================[ development: laptop.dynazu.com ]====================
DOMAIN:https://laptop.dynazu.com
Debugger listening on ws://127.0.0.1:9229/cb0c2453-7991-4e7e-8cc1-c81afa519198
For help, see: https://nodejs.org/en/docs/inspector
/home/joel/workspace/Tracker/server/api/user/user.controller.js:75
var users = _user2.User.getUsers();
^
TypeError: Cannot read property 'getUsers' of undefined
at Object.<anonymous> (user.controller.ts:34:20)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Module._compile (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Object.newLoader [as .js] (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at Module.require (internal/modules/cjs/loader.js:666:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (index.ts:3:1)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Module._compile (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Object.newLoader [as .js] (/home/joel/workspace/Tracker/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
起初我认为可能是 ng 或构建工具存在问题。但是,当我与生成的代码(js 等)进行比较时,除了预期的微小变化外,没有任何变化。
并且查看错误和堆栈跟踪,似乎这可能是负载问题???有没有人见过这样的事情?
user.controller.ts:34 是:
const users = User.getUsers();
User.getUsers 非常简单:
public static getUsers(): monk.ICollection<UserData> {
log('getUsers()...', db);
return db.get('users');
}
这显然是永远无法达到的。因此,这似乎是一个负载问题?也许是节点通天塔??
有没有办法在没有 node-babel 的情况下对此进行测试?
从某种意义上说,我回答了如何使用 babel 而不是 node-babel。
我通过使用打字稿复制已经转换为 E6 代码的代码的相关部分来做到这一点。然后我做了
node_modules/.bin/bower src -d output
然后做了
node output/app.js
希望我能找到成功。相反,我看到:
NODE_ENV: ====================[ development: laptop.dynazu.com ]====================
DOMAIN:https://laptop.dynazu.com
/home/joel/workspace/Tracker/server/output/api/user/user.controller.js:75
var users = _user2.User.getUsers();
^
TypeError: Cannot read property 'getUsers' of undefined
at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/api/user/user.controller.js:75:25)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at Module.require (internal/modules/cjs/loader.js:666:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/api/user/index.js:9:42)
at Module._compile (internal/modules/cjs/loader.js:759:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at Function.Module._load (internal/modules/cjs/loader.js:555:12)
at Module.require (internal/modules/cjs/loader.js:666:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/home/joel/workspace/Tracker/server/output/auth/auth.service.js:18:14)
at Module._compile (internal/modules/cjs/loader.js:759:30)
和以前一模一样!。
至少现在我有完全翻译的 js,并且能够确定 babel 翻译中似乎有什么问题!(我希望 :-)。
问题比预期的要严重。查看生成的代码,似乎没有任何问题。似乎负载本身正在中断,因为我现在直接使用 babel 并运行'node app.js'......我们会看到......
加载本身会引发错误并删除模块,因此我看到这个错误对'TypeError:无法读取未定义的属性'getUsers'没有任何意义,这是一个红鲱鱼......我正在深入挖掘......但是有点在这一点上毫无头绪。