节点工作线程无法加载外部模块?

我试图在我的服务器上multithreading一个cpu密集型的工作。 我正在使用webworker线程。

Server.js :(相关部分)

var Worker = require('webworker-threads').Worker; function doWork(req, res) { console.log("connection received"); var fibo = new Worker('plainworker.js'); fibo.onmessage = function (event) { res.json('fib(10) = ' + event.data); }; fibo.postMessage(10); } 

plainworker.js:

 var _ = require('underscore'); ///////////// <---- PROBLEM LINE function fibo (n) { return n > 1 ? fibo(n - 1) + fibo(n - 2) : 1; } onmessage = function (event) { postMessage(fibo(event.data)); } 

所以我注意到,如果我在我的plainworker.js文件中加载了一个模块,那么它会吓坏了。 如果我删除这条线,那么一切正常。 问题是,我想在我的工作人员中使用下划线…

有没有人有thread-a-gogo或webworker-threads的经验,并且可以告诉我他们是否成功地在工作者线程中加载了一个外部模块?

看起来像我不得不使用'importScripts(..)'函数( 见这里 ),因为需求似乎不工作的工作线程内。

plainworker.js:

 importScripts('./node_modules/underscore/underscore.js'); function fibo (n) { return n > 1 ? fibo(n - 1) + fibo(n - 2) : 1; } onmessage = function (event) { postMessage(fibo(event.data)); }