2016-03-15 79 views
0

我有一個(javascript)文件,其中包含App.js和客戶端都使用的'static'變量。NodeJS - 可從客戶端和節點訪問的不同文件

不幸的是,在App.js中,您需要有'模塊',這些模塊在正常的jscript文件中沒有使用。這會導致客戶端發生錯誤,因爲'模塊'未定義。有沒有辦法做到這一點?

TL; DR:如何在app.js和客戶端訪問常量變量?

E.g:

var Variable = { Foo: "Foo", Bar: "Bar"}; 

Variable.Foo //Accesible from both app.js and client 
+1

我想你已經在客戶端或服務器(其中之一)來定義你的VAR,然後通過http – Vanojx1

+0

共享據我瞭解,你想有,你可以同時加載一個文件,客戶端和服務器,並訪問其中的變量?如果是這樣的話,只要首先檢查'module'對象是否存在,如果是的話,將該對象附加到'module.exports',如果沒有,那麼沒問題,變量將被瀏覽器訪問(如果它們是不包裹在anon函數中)。 – ROAL

+0

客戶端是另一個npm-project駐留在相同的開發環境? yes:導出一個簡單的模塊,只公開名爲'Variable'的對象。 no:通過HTTP請求暴露像'API'這樣的'Variable'對象。 – morels

回答

3

這裏使用browserify例如:

安裝browserify

npm install -g browserify 

sudo npm install -g browserify 

寫模塊

// greetings.js 
module.exports = function(name) { 
    return 'Hello ' + name + '!'; 
} 

使用模塊

// app.js 
var greetings = require('./greetings'); 
alert(greetings('Christophe')); 

創建束

browserify app.js -o bundle.js 

添加bundle.js到您的index.html文件並運行應用程序。

<html> 
<body> 

<script src="bundle.js"></script> 
</body> 
</html>