Sails. js: при отправке формы контроллер никогда не вызывался - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь ознакомиться с Парусами. js. У меня возникла проблема: мне не удается вызвать контроллер при отправке формы.

Вот моя форма в моем файле e js:

  <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>

Вот как отображение выполняется в маршрутах. js:

  'GET /calibers/view':      { action: 'calibers/view'},
  'POST /calibers/add':      { action: 'calibers/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
     });}

};

Когда я нажимаю на кнопку отправки моего Форма, контроллер, кажется, никогда не вызывается, и я перенаправлен на простой «Запрещено». Что здесь происходит ? Спасибо за помощь.

1 Ответ

1 голос
/ 10 марта 2020

Учитывая, что вы используете формат action2, вы должны иметь:

Действие Добавить в api / controllers / calibre / add

Маршрутизация:

'POST /api/v1/caliber/add': { action: 'caliber/add' }'

В файле представления:

<form method="post" action="add" enctype="multipart/form-data">

Хотя я бы посоветовал вам использовать более длинные имена действий, так как вы могли бы добавить несколько контроллеров, которые могут привести к проблемам.

Это все в документации Пожалуйста, прочитайте их.

...