返回介绍

与 Node 应用集成

发布于 2019-12-26 23:51:15 字数 1198 浏览 1101 评论 0 收藏 0

Rax SSR 应用也支持与传统 Node 应用进行集成。工作流程大致分为两个部分:

  1. 在 Rax SSR 应用中开发页面逻辑,分别构建为 Server 和 Client 端的产物
  2. 在 Node 应用中,调用 Server 端产物进行渲染

构建

在项目根目录下执行 npm run build ,即可进行项目构建。

构建产物与 app.json 中路由配置的对应关系如下:

routes 配置:

 1[
 2    {
 3      "path": "/",
 4      "component": "pages/home"
 5    },
 6    {
 7      "path": "/about",
 8      "component": "pages/about"
 9    }
10  ]

对应构建产物:

1pages_home.js
2pages_about.js

每张 Rax 页面都会被构建为一个独立 function,供 Node 应用调用,形式如下:

1export function render(req: http.IncomingMessage, res: http.ServerResponse) => void

集成

以结合到一个基于 Express 的 Node 应用为例,示例代码如下:

 1const express = require('express');
 2const PORT = 8080;
 3const app = express();
 4const routes = {
 5  '/': require('./build/server/pages_home.js'),
 6  '/about': require('./build/server/pages_about.js')
 7};
 8
 9Object.keys(routes).map(path => {
10  const page = routes[path];
11  app.get(path, (req, res) => {
12    page.render(req, res);
13  });
14});
15
16app.listen(PORT, () => {
17  console.log(`app listening on port ${PORT}`);
18});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文