【问题标题】:Deployd and universal/isomorphic React app已部署的通用/同构 React 应用程序
【发布时间】:2015-09-18 07:44:27
【问题描述】:

长话短说,我得到了这个部署的“server.js”

var deployd = require('deployd');
...
var server = deployd(options);
server.listen();

然后我的 React 应用程序驻留在一个“公共”文件夹中。现在我只是使用 Deployd 的 API 到数据库,但我希望应用程序是同构的(以便搜索引擎可以索引)。

所有示例似乎都将 Express 或 Koa 用于服务器,并将 Mongoose/Koa-mongo-rest 用于某种 API 连接,但这似乎是 Deployd 已经完成的大量工作。我只想将 React 用于 View,Alt 用于 Flux,Deployd 用于 API/server/whatnot。但我真的是这方面的初学者,不知道如何获取样板文件并关闭服务器。特别是对于 Deployd,“React 应用程序”的所有内容都将驻留在“public”目录中,但对我来说,似乎我需要将 1 个目录移到更高的位置并在 Deployed server.js 中“渲染”应用程序这样它就可以是同构/通用的。还是我只是离开服务器而只需要做其他事情?

基本上我完全不懂同构渲染的概念……ELI5,我不是个聪明人……

编辑:看起来你可以作为快速中间件运行部署,我想我可以弄清楚如何做到这一点......

【问题讨论】:

    标签: reactjs universal deployd


    【解决方案1】:

    如果你使用 deployd 作为 express 中间件,你可以使用 PayPal 的 react-engine 作为一个 express view 系统来渲染 React。

    var express = require('express');
    var app = express();
    
    // create the view engine with `react-engine`
    var engine = require('react-engine').server.create({
      reactRoutes: <string> /* pass in the path to react-router routes optionally */
      performanceCollector: <function> /* optional function to collect perf stats */
    });
    
    // set the engine
    app.engine('.jsx', engine);
    
    // set the view directory
    app.set('views', __dirname + '/views');
    
    // set jsx as the view engine
    // Without this you would need to
    // supply the extension to res.render()
    // ex: res.render('index.jsx').
    app.set('view engine', 'jsx');
    
    // finally, set the custom view
    app.set('view', require('react-engine/lib/expressView'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2021-04-01
      • 2017-11-03
      • 2012-10-11
      • 1970-01-01
      • 2017-12-01
      • 2021-07-15
      相关资源
      最近更新 更多