0

私はかなり大きなノードプロジェクトに取り組んでおり、ファイルを要求し、その中にグローバル変数を設定する(どこからでもアクセスできるようにする)という現在の方法が良い考えなのか、それとも安全でないのか疑問に思っています。私はあなたたちが私にいくつかの時間を与えることができるかどうか疑問に思っています.

サーバー.コーヒー

#require and define all dependencies
require 'coffee-script'
GLOBAL.fs = require 'fs'
GLOBAL.crypto = require 'crypto'
GLOBAL.hound = require 'hound'
GLOBAL.async = require 'async'

require './config'
require './functions'

#define route
require './routes/index'
require './routes/login'
require './routes/editor'

#sockets
require './sockets/chat'

console.log "Listening"

config.coffee

GLOBAL.express = require 'express'
GLOBAL.http = require 'http'
GLOBAL.ect = require 'ect'
GLOBAL.mysql = require 'mysql'
GLOBAL.sass = require 'connect-sass'
GLOBAL.coffeescript = require 'connect-coffee-script'
GLOBAL.SchemaObject = require 'node-schema-object'

GLOBAL.User = new SchemaObject
  id: Number,
  fullname: String,
  secret: String,
  email: String,
  lastOpened: Number

GLOBAL.ectRenderer = ect
  watch: true, 
  root: "#{__dirname}/views"

MemoryStore = express.session.MemoryStore
sessionStore = new MemoryStore()  
GLOBAL.app = express()
app.configure ->
  app.use(require('prerender-node'))
  app.use(coffeescript(src: "#{__dirname}/public"))
  app.use '/css/main.css', sass.serve("#{__dirname}/sass/main.scss")
  app.use(express.favicon());
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({secret: 'LOLLYU83rhf99fefru9d', store: sessionStore}));
  app.use express.static("#{__dirname}/public")

GLOBAL.server = http.createServer(app).listen(8080)
GLOBAL.io = require('socket.io').listen(server)

GLOBAL.connection = mysql.createConnection
  host: '.....',
  user: '.....',
  password: '.....',
  database: '.....'

connection.connect()

これを行うより良い方法はありますか。勝手に推測して作った感じです。私はすべてを超きれいにしたい。そして速い。

4

2 に答える 2

0

そのグローバルなものをすべて捨ててください。app内側のクロージャー ( など) で使用できるようにする必要がある場合はconfigure、そこで使用するだけで使用できます。

続行する前に、クロージャーについて十分に理解していることを確認してください。この SO 投稿が役に立ちます: JavaScript クロージャーはどのように機能しますか? .

Express アプリをレイアウトする方法を知りたい場合は (ファイルの場所など)、この SO 投稿をご覧ください: express.js sample apps

于 2013-10-17T16:20:10.683 に答える