Sails.js:提交表单时从未调用过控制器

问题描述 投票:0回答:1

我正在尝试使自己熟悉Sails.js。我遇到了一个问题:提交表单时,我无法设法调用控制器。

这是我的ejs文件中的表单:

  <form method="post" action="/calibers/add" enctype="multipart/form-data">
    <label for="fname">Name of the new caliber:</label><br>
    <input type="text" id="name" name="name" value="" placeholder="7,62x54 R">
    <input type="submit" value="submit" class="btn">
  </form>

这是在routes.js中完成映射的方式:

  'GET /calibers/view':      { action: 'calibers/view'},
  'POST /calibers/add':      { action: 'calibers/add'},

这里是被称为的控制器:add.js:

module.exports = {

  friendlyName: 'Add calibers',

  description: 'Adding new caliber to calibers list',

  inputs: {
          name: {
            type: 'string',
            required: true
          },
  },

  exits: {
    success: {
        responseType: 'view',
        viewTemplatePath: 'pages/welcome'
      },
  },

  fn: async function (inputs, exits) {
    console.log("Called function");

    let newCal = await Caliber.create({name: inputs.name});

    // All done.
    if (!newCal) {
       return exits.invalid({
         message: 'New caliber could\'t be added'
       });
     }

     return exits.success({
       message: 'New caliber successfully added',
       data: userRecord
     });}

};

当我单击表单的提交按钮时,似乎从未调用过该控制器,而是将我重定向到一个简单的“禁止”。到底是怎么回事 ?感谢您的帮助。

javascript node.js sails.js ejs
1个回答
1
投票

考虑您使用的是action2格式:

© www.soinside.com 2019 - 2024. All rights reserved.