【发布时间】:2019-08-21 18:46:26
【问题描述】:
我被一些乍一看似乎不可能的事情困住了:
我有两个并行运行的脚本:
- 我的应用服务器
npm run start-server - 我的自动文档
npm run documentation-auto
我的服务器是一个 models.js 文件,它引用了一个内部包含自定义动态模型的类。
我想使用在服务器进程中实例化的类(使用来自应用服务器的模型)访问该文件
文件结构:
// user-model.js
require('models');
models.registerModel(
'user', // modelName
{ firstName: String, lastName: String } // model
);
// models.js
module.exports = class {
registerModel(name, model) {
this[name] = model;
}
}
documentation-auto.js(另一个进程)
// documentation-auto.js
const models = require('../../other-app/models');
console.log(Object.keys(models)) // => registerModel (but no user :( )
有可能吗?我搜索了一遍,但一无所获...
【问题讨论】:
-
您的 2 个应用程序是独立的,它们不能共享这样的变量。您遇到了 IPC(进程间通信)问题。在我看来,更容易的是让服务器编写一个您可以从 documentation-auto.js 观看的文件。例如写一个
models.json并在documentation-auto.js 中对这个文件使用fs.watch,以便在每次被服务器进程修改时重新加载。 -
是的,不错的主意!可能是一个很好的解决方法
标签: javascript node.js parallel-processing scope require