【发布时间】:2020-06-21 13:34:10
【问题描述】:
我正在尝试熟悉 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