航行JS。无法从POST表单“创建”

时间:2018-07-19 03:55:30

标签: javascript url post sails.js

我正在尝试使用Sails在数据库中创建一个新客户。当您通过URL手动输入参数时,这可以按您期望的方式运行,但是,当我通过表单使用POST方法时,会收到404 not found错误,这与将页面刷新为相同URL时没有多大意义,我收到一个新错误,通知我未定义的属性(这很有意义,因为我尚未定义任何属性)。我已经检查了Chrome控制台,并且POST方法似乎正在以正确的URL形式发送数据。

客户总监

/**
 * CustomerController
 *
 * @description :: Server-side actions for handling incoming requests.
 * @help        :: See https://sailsjs.com/docs/concepts/actions
 */

module.exports = {

    'new': function (req, res) {
        res.view();
    }


};

new.ejs(新客户创建视图)

<form action="/customer/create" method="POST"> 

<h2> Create customer</h2>

<input type="text" placeholder="Name" name="name" ></br/>
<input type="text" placeholder="Email" name= "email" ></br/>
<input type="text" placeholder="State" name = "state" ><br/>

<input type="submit" value="Create Customer"/>

</form>

Customer.js(模型)

/**
 * Customer.js
 *
 * @description :: A model definition.  Represents a database table/collection/etc.
 * @docs        :: https://sailsjs.com/docs/concepts/models-and-orm/models
 */

module.exports = {

  attributes: {

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

    email: {
      type:'string',
      isEmail: true
    },

    state: {
      type: 'string'
    }
  },
};

完整的项目在这里; https://github.com/daneroe/Sails-Test-App

1 个答案:

答案 0 :(得分:0)

已修复! **

在较旧版本的sail中,似乎要使用'create'方法,则必须将其明确指向URL并包含'/ create'。在当前版本中,似乎并不需要这样做,而是直接发布到“ / customer”(或您使用的任何“模型”)会自动创建新记录。