0

长话短说,我得到了这个部署的“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 应用程序”的东西都将驻留在“公共”目录中,但对我来说,似乎我需要将 1 个目录移到更高的位置并在 Deployed server.js 中“渲染”应用程序这样它就可以是同构/通用的。还是我只是离开服务器而只需要做其他事情?

基本上我根本没有真正掌握同构渲染的概念……ELI5,我不是聪明人……

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

4

1 回答 1

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'));
于 2015-07-01T12:37:11.887 回答