Вы можете просто импортировать свою run
функцию там, где она вам нужна, и запустить ее там, тогда нет необходимости в windows службе или main.js
- это предполагает, что «любое внешнее приложение» является приложением Node .
В другом приложении вы выполните следующее:
const app = require('<path to App.js>');
app.run(someNodes)
Для более широкого использования или если вам нужно запустить его как службу, вы можете запустить express ( или другой веб-сервер) в вашем приложении. js с конечной точкой, которая вызывает вашу функцию run
. Затем из любого места вам нужно будет выполнить http-вызов этой конечной точки.
Приложение. js
const express = require('express')
const bodyParser = require('body-parser')
const { workerData, parentPort, isMainThread, Worker } = require('worker_threads')
const app = express()
const port = 3000
var NodesList = ["xxxxxxx", "xxxxxxx"]
const run = function (Nodes) {
if (isMainThread) {
while (Nodes.length > 0) {
// my logic
})
}
}
}
app.use(bodyParser.json())
app.post('/', (req, res) => res.send(run(req.body)))
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
(На основании примера для express - https://expressjs.com/en/starter/hello-world.html)
Вам потребуется установить как express, так и body-parser: $ npm install --save express body-parser
из каталога приложения. js.
Из другого приложениям вам нужно будет вызывать конечную точку http://localhost:3000
с запросом POST и Nodes
как массив JSON.