【问题标题】:Routing in locomotive using ejs使用ejs在机车中路由
【发布时间】:2014-04-16 08:43:22
【问题描述】:

我正在尝试 node 和一些用于 node atm 的框架,特别是机车。但是,我似乎被困在使用机车的路线上。有几个问题我找不到答案,所以这里是:

  1. 为什么机车开箱即用安装使用 index.html.ejs 作为 文件名?为什么不只是 index.ejs?有什么好处?

  2. 我正在尝试向视图添加路由:searchName.html.ejs,我 添加到视图文件夹中。为了实现这一点,我制作了一个 toolController 像这样:

    var locomotive = require('locomotive').Controller,
    toolController = new Controller();
    
    toolController.searchName = function() {
        this.render();
    }
    
    module.exports = toolController;
    

    我还在 routes.js 中添加了一个路由,如下所示:

    this.match('searchName', 'tool#searchName');
    

    但是,这是行不通的(但文档说应该可以)。结果是 404 错误。那么我该如何让这条路线发挥作用呢?

  3. 假设我想创建一条到例如 anExample.html 的路线?我怎么走 关于那个?我注意到在开箱即用的应用程序中 机车,不能输入 localhost:3000/index.html 。甚至也不 localhost:3000/index 这对我来说似乎非常不切实际,因为那里 有很多用户会添加他们想要访问的特定页面。 那么我怎样才能做到这一点呢?

PS:我在 stackoverflow 上解决了所有关于此的问题并搜索了网络,但我仍然无法弄清楚。enter code here

【问题讨论】:

    标签: node.js routing locomotivecms locomotivejs


    【解决方案1】:
    1. 好处是这种命名方案允许您为单个路由指定几种不同的格式。因此,您可以拥有search_name.html.ejssearch_name.xml.ejs,然后根据客户的期望以任一视图进行响应。

    2. 您发布的示例代码存在几个问题。您应该看到比 404 更具描述性的错误,所以我不确定那里发生了什么,但这里是对您的代码的修复,适用于我的环境。

      在控制器中:

      //tool_controller.js
      var locomotive = require('locomotive');
      var toolController = new locomotive.Controller();
      
      toolController.searchName = function() {
        this.render();
      };
      
      module.exports = toolController;
      

      在 routes.js 中:

      //routes.js
      module.exports = function routes()
      {
        this.match('searchName', 'tool#searchName');
      }
      

      然后,您需要将视图更改为:views/tool/search_name.html.ejs。从文档中并不清楚,但机车会自动小写并强调骆驼大小写的操作,例如 searchName。

      现在启动应用程序并浏览到http://localhost:3000/searchName

    3. 如果您只想提供静态 html 文件,最简单的方法是将其放到 public 文件夹中。该文件夹专门用于提供静态内容,如客户端 js、css 等。它也可以很好地提供静态 HTML。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 2020-02-25
      • 2023-04-01
      • 2020-06-22
      相关资源
      最近更新 更多