1066040
由于自己不想过多的程式码挤在同一个档案中,在 stackoverflow 中查询 Node 如何 import 其他的 .js。
多半的解法不外乎就是将这些 .js export.module,然后 require 它。不过因为一些设计考量(我的变数 scope),此法不太适合我。
于是乎我看到了有人使用 eval 完成了我的需求,在当下我明知道 eval === evil 般的恐怖我还是使用了。程式码日益壮大,直到现今的除错讯息真的被 eval 阴了,请见下举例错误讯息:
ReferenceError: userInSession is not defined
at async.waterfall.getUser.uid (eval at <anonymous> (/Users/Salmon/GitHub/Bounty-Workers/serverSide/web.js:119:9), <anonymous>:88:5)
at fn (/Users/Salmon/GitHub/Bounty-Workers/node_modules/async/lib/async.js:641:34)
at Object._onImmediate (/Users/Salmon/GitHub/Bounty-Workers/node_modules/async/lib/async.js:557:34)
at processImmediate [as _immediateCallback] (timers.js:336:15)
eval at <anonymous> 正常的错误讯息都应该明确指示出呼叫的函数为何者,但只说是 eval 执行的匿名函数(anonymous function)與错误的行数,这将造成开发者大大的困扰啊 ...
不晓得各位前辈有没有较好的解决方式呢?