【问题标题】:Node, Angular, Express and the view engineNode、Angular、Express 和视图引擎
【发布时间】:2014-11-05 18:21:26
【问题描述】:

我最近开始使用 Angular、Node 和 Express。我已经在 Angular 中制作了一些基于浏览器的工作应用程序,并试图将它们移植到 Node 和 Express 中的服务器应用程序。 (特别是,一个会从 Twitter 中提取数据,而另一个会从 Wikidot 中提取数据。)

由于我使用 Angular 进行数据注入和模板化,我不想使用其他视图引擎,例如 EJS 或 Jade。我想使用我已经编写的 HTML/Angular 代码,并且尽可能少地进行修改。我很困惑为什么 Express 要求我有一个视图引擎。

让此代码作为 Node/Express 应用程序运行的最简单方法是什么?

【问题讨论】:

    标签: node.js angularjs express


    【解决方案1】:

    我一直在寻找的答案就是这行代码。

    app.engine('html', require('ejs').renderFile);
    

    【讨论】:

    • 但是其他通常设置的东西呢:是否有必要使用这个:app.set('views', ..)?或者这个:app.use('/', express.static('./public'));
    • 您能否发布更多代码以便总体上更有意义,因为我也有同样的问题。
    【解决方案2】:

    由于您使用的是 AngularJS,我认为您不太关心 Express 的视图引擎,例如如果您使用 Express 来呈现 HTML,那就更好了。也许你只是用它来将你的初始 HTML(带有指向所有 .js、.css 等的链接)加载到浏览器中(服务器端模板渲染),剩下的工作是通过 AngularJS 与你的 Express 的 HTTP 通信来完成的服务

    简单的方法是让你从 Express 返回 JSON,试试这个函数http://expressjs.com/api#res.json

    使用 AngularJS 与 Express 通信,AngularJS 在浏览器上渲染有趣的东西(客户端模板渲染等)

    【讨论】:

    • 通过这个答案,我假设我将直接调用 HTML 文件,而不是让 Node.js 将其解释为模板。那是对的吗?如果是这样,我如何阻止 Node 尝试解释它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多