自定义视图/操作/控制器在Sails JS中不起作用

Wag*_*sUK 6 node.js sails.js

我必须做错事,但我看不到......基本上如果我通过sails generate controller products文件创建一个控制器/模型,/controllers/ProductsController我会在索引操作中添加一些变量,例如:

index: function(req, res) {

    return res.view({
        myOne: 'World?',
        myvar: 'hello???',
        title: 'Yeap'
    })

},
Run Code Online (Sandbox Code Playgroud)

当我检查localhost:1337/products时,变量确实在模板中打印出来.请注意,我没有添加自定义视图,我的模板文件位于views/products/index.jade(我使用的是Jade而不是EJS).但是,如果我创建一个自定义视图,/config/routes例如:

'/custom': {

    view: 'custom',
    controller: 'ProductsController',
    action: 'customAction'

}
Run Code Online (Sandbox Code Playgroud)

在我的ProductsController中,我有一个非常类似的操作,如前所述:

customAction: function(req, res) {

    return res.view({
        myOne: 'Hello?',
        myvar: 'World???',
        title: 'Yeap'
    })

},
Run Code Online (Sandbox Code Playgroud)

变量不会打印在我的模板中.该模板被称为正常,所以是控制器和动作(似乎).谁能解释我做错了什么?

Joh*_*alt 9

customAction.jade如果要通过以下方式访问视图,可以选择将视图命名为与操作相同的名称:

index: function(req, res) {

  return res.view({
    myOne: 'World?',
    myvar: 'hello???',
    title: 'Yeap'
  })

},
Run Code Online (Sandbox Code Playgroud)

或者您可以使用以下语法访问相同的视图/模板(例如index.jade):

customAction: function(req, res) {

  return res.view('products/index', {
    myOne: 'World?',
    myvar: 'hello???',
    title: 'Yeap'
  })

},
Run Code Online (Sandbox Code Playgroud)

我在这里使用ejs有一个工作回购.