Javascript NodeJS-全局定义';要求';剧本
这是一个有点奇怪的问题,所以希望简单的例子能起到作用,因为我计划如何使用它,这对我自己来说有点复杂 我正在将自己的模块导入到Express服务器的routes.coffee中。我只需要在routes.coffee中使用一次FS,并将其应用于所有导入的模块,以便这些脚本也可以访问它 例如,我的路线。咖啡:Javascript NodeJS-全局定义';要求';剧本,javascript,node.js,coffeescript,Javascript,Node.js,Coffeescript,这是一个有点奇怪的问题,所以希望简单的例子能起到作用,因为我计划如何使用它,这对我自己来说有点复杂 我正在将自己的模块导入到Express服务器的routes.coffee中。我只需要在routes.coffee中使用一次FS,并将其应用于所有导入的模块,以便这些脚本也可以访问它 例如,我的路线。咖啡: fs = require("fs") a = require("./a") module.exports = (app) -> app.get '/', (req, res) -
fs = require("fs")
a = require("./a")
module.exports = (app) ->
app.get '/', (req, res) ->
a req, res
然后a.咖啡看起来像这样:
module.exports = (req, res) ->
cConf = JSON.parse (fs.readFileSync 'data.json', {encoding: 'utf8'})
res.send cConf
在a.coffee中,fs在文件的顶部不是必需的,因此目前它不起作用,而是在routes.coffee中定义的。我只想在routes.coffee中导入一次fs并将其应用于所有人。我怎样才能正确地处理这件事呢
同样,这个问题有点奇怪,但我计划如何使用它肯定会有助于我计划的总体性能。提前谢谢 您可以使用
global.fs=require'fs'
也就是说,不要这样做,因为这不是污染全局命名空间的好理由有很多好理由“污染全局命名空间”。与浏览器环境不同,节点编码器应该完全控制机器上运行的脚本,因此不需要严格的交叉兼容,这是有利的,甚至是特别可取的…是的,对,使用globals有很多很好的理由。。。就像不关心设计一样。@alex是对的,不要使用globals。使您的代码更难理解。也不要在路由中使用任何同步!你总是可以快速地需要一堆东西。映射(require)