Javascript 传递Node.js数据以作出反应

Javascript 传递Node.js数据以作出反应,javascript,node.js,express,reactjs,Javascript,Node.js,Express,Reactjs,我正在重构一个组件的核心以响应代码 之前,我使用Jade编译它,并将i18n文本从Jade全局文件直接传递到HTML。大概是这样的: // in Node.js / Express const text = require('./assets/texts.json'); app.get('/route', (req, res) => { render('page', text); }); 在翡翠中,我会: h3= text.en.title p= text.en.subtitle

我正在重构一个组件的核心以响应代码

之前,我使用Jade编译它,并将i18n文本从Jade全局文件直接传递到HTML。大概是这样的:

// in Node.js / Express
const text = require('./assets/texts.json');
app.get('/route', (req, res) => {
    render('page', text);
});
在翡翠中,我会:

h3= text.en.title
p= text.en.subtitle
现在我正在用React做这件事,我想知道如何将数据传递给它

如果我执行
consttext=require('./text.json')在react文件中我得到一个错误


如何从节点传递数据,以与我使用Jade时相同的方式作出反应?是否只有在客户端通过Ajax才有可能实现这一点?

好的,所以在这个问题上,我选择了我找到的答案

最后,我将文本信息传递到将接收React组件的DOM元素中。所以在《翡翠》中我做到了:

-
    var words = ["calculate_price", "price_info", etc etc... ];
    var text = words.reduce(function(obj, word){
        return (obj[word] = lang[word], obj);
    }, {});
#dialog_wrapper(data-text= JSON.stringify(text))
在我安装组件的文件中:

const dialogWrapper = document.getElementById('dialog_wrapper');
const dialogText = JSON.parse(dialogWrapper.dataset.text);
ReactDOM.render(<BookingDialog text={dialogText}/>, dialogWrapper);

您可以使用
json loader
,但也许您的问题更多的是关于express?@Daniel_L在这种情况下,所有语言的整个json文件都将通过JavaScript加载到客户端,对吗?我只想在服务器端添加正确的翻译词,以减少客户端加载的数据。我希望我可以在react将要装载的元素中添加一个带有json字符串的
数据文本
属性。。。但是想知道是否还有其他更干净的方法。您可以使用另一个脚本,只从json文件导出您需要的内容。听起来,这是您在装载根组件时从服务器获取的内容
componentDidMount() {
    console.log(this.props.text); // all here!
}