如何将值从app.js文件传递到节点js中的客户端文件?

时间:2014-08-08 07:50:38

标签: javascript node.js express

这里我有一个疑问,我如何将值从节点js app.js文件传递到我的客户端js文件。

这是我的app.js文件

var express  = require('express');
var app      = express();                               
var port     = process.env.PORT || 3000;
var bodyParser = require('body-parser');
var facebookAppId = '123456789023'


app.configure(function() {
app.use(express.static(__dirname + '/dist'));   
app.use(express.logger('dev')); 
app.use( bodyParser.json() );  
app.use( bodyParser.urlencoded() );     
app.use(express.methodOverride());  
    });
app.listen(port);

在我的dist文件夹中,我有index.html。当我启动app.js时,以前开始运行。所以我想在我的客户端使用facebookAppId。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

将它放在共享文件夹下的自己的json文件中,然后你可以在节点中这样需要它:

<强>共享/ facebookInfo.json

{
    "facebookAppId" : 123456789023
}

<强> app.js

var facebookAppId = require('./shared/facebookInfo').facebookAppId;

...
// make sure to mount the directory as well so you can access it from the front end:
// it's being mapped to /shared here
app.use('/shared', express.static(__dirname + '/shared')); 
...

在客户端包含ajax槽jquery或$ http,无论你使用什么。

另一种方法可能是不将文件放在共享的已安装文件夹下,但在前端构建过程中包含它。
通过这种方式,您无需另外请求进入您的前端,并且包含更多内容。

这可能是最受欢迎的插件:
https://github.com/gruntjs/grunt-contrib-concat

这有点假设您的前端和后端处于同一个回购中。如果他们使用不同的仓库,您也必须将您的共享数据放在一个单独的仓库中,但这是一个完全不同的问题。