【问题标题】:Integrate express.js application and docpad集成 express.js 应用程序和 docpad
【发布时间】:2013-05-02 07:45:21
【问题描述】:

我一直在使用 docpad 预生成前端 html/js 应用程序(使用 docpad generate --env static)。经过几次挂断和 balupton 的错误修复后,它现在运行良好,为我节省了大量时间。我只是将这些文件复制到现有的 apache 服务器进行部署。

我现在还创建了一个 node.js/express.js 后端应用程序,它使用一个简单的 api 向客户端提供数据。这段代码是独立于我上面讨论的 docpad/static 文件创建和运行的。

我现在想整合这两者。这通常在 docpad 世界中是如何完成的?我看到了几个选项:

1) 后端和前端代码是分开的。 Docpad 用于生成前端静态文件,然后使用单独的后端应用程序来提供静态文件和数据。仅将静态文件和 express 应用复制到服务器进行部署。

2) 后端源文件与前端文件一起生成并复制到服务器进行部署。我想这几乎与 #1 相同,只是 src/files 目录需要包含 express.js 应用程序文件,并允许我在后端源上运行预处理器。

3) 我的后端应用程序requires docpad(它生成out/ 目录并添加docpad 中间件)然后启动服务器(如下所示:https://github.com/bevry/docpad/issues/342)。这将简化测试,但需要将整个项目目录结构(src/out/ 和所有)复制到服务器进行部署。

我不是在询问如何做到这一点的细节,而是想知道这方面的 docpad 哲学是什么。我错过了其他选择吗?

谢谢。

【问题讨论】:

  • 你好 balupton。 #3 在链接的问题关闭。我可以将我的自定义路由添加到 docpad.coffee,但我认为这意味着我需要部署整个 docpad 树结构(与上面的 #3 相同)。我想最终我只想部署生成的静态内容和一两个 node.js 文件,以通过 ajax 查询开始提供静态文件和动态内容。
  • 问题变成了我应该把生成javascript的服务器放在哪里(称之为app.js)?在docpad.coffee 旁边的项目文件夹根目录中还是在src/ 目录中?那么我如何让 docpad 在测试期间使用它而不是内置服务器。感谢您的帮助。

标签: docpad


【解决方案1】:

问题变成了我应该把生成javascript的服务器放在哪里(称之为app.js)?在 docpad.coffee 旁边的项目文件夹根目录中还是在 src/ 目录中?那么我如何让 docpad 在测试期间使用它而不是内置服务器。感谢您的帮助

为此,您将创建 app.js,其中包含类似于 API docs 的内容:

var docpadInstanceConfiguration = {
    env: 'static'
};
require('docpad').createInstance(docpadInstanceConfiguration, function(err,docpadInstance){
    if (err)  return console.log(err.stack);
    var generateOpts = {};
    docpadInstance.action('generate', generateOpts, function(err,result){
        if (err)  return console.log(err.stack);
        // ...
    });
});

然后,您将更新您的 Procfile(对于 heroku)和您的 package.json 主条目(对于其他所有内容)以指向 app.js 而不是 detault ./node_modules/.bin/docpad-server

如果您想定义自己的 DocPad 应该使用的快速服务器,也可以通过 docpadInstanceConfigurationserverHttpserverExpress 传递给 docpad。 More info here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-06
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多