在您的数据库中创建一个新记录。
POST /:model
返回一个 JSON 字典,表示新创建的实例。如果发生验证错误,则会返回一个包含无效属性和 400
状态码的 JSON 响应。
此外,如果 autoWatch
设置 为开启状态(默认情况下为开启),则会向正在监视此模型的所有客户端套接字发布“已创建”通知;也就是说,之前已向“查找”蓝图操作发送过请求的客户端套接字。这些相同的套接字也将订阅以了解随后对新记录的更改。
最后,如果此蓝图操作是通过套接字请求触发的,则请求套接字也将订阅新创建的记录。换句话说,如果随后使用蓝图更新或删除该记录,则会向该客户端套接字发送一条消息,通知他们该更改。有关更多信息,请参阅 .subscribe()
。
参数应发送到 请求正文 中。默认情况下,Sails 理解正文参数最常见的编码类型,包括 URL 编码、表单编码和 JSON。
参数 | 类型 | 详情 |
---|---|---|
模型 | 应在其中创建新记录的模型的 标识。 例如 'purchase' (在 POST /purchase 中) |
|
_*_ | 使用与模型上定义的属性名称相同的名称发送 正文参数,以在您的新记录上设置这些值。 这些值的处理方式与传递到模型的 .create() 方法中相同。 |
创建一个名为“Applejack”的新用户,其爱好为“pickin”,并且参与了购买 #13 和 #25
POST /pony
{
"name": "Applejack",
"hobby": "pickin",
"involvedInPurchases": [13,25]
}
{
"id": 47,
"name": "Applejack",
"hobby": "pickin",
"createdAt": 1485550575626,
"updatedAt": 1485550603847,
"involvedInPurchases": [
{
"id": 13,
"amount": 10000,
"createdAt": 1485550525451,
"updatedAt": 1485550544901
},
{
"id": 25,
"amount": 4.50,
"createdAt": 1485550561340,
"updatedAt": 1485550561340
}
]
}
如果已为您的应用启用 WebSockets,则每个“监视”此模型的套接字客户端(已向模型的 "查找条件"蓝图操作 发送过请求)都将收到“已创建”通知,其中事件名称为模型标识(例如 user
),并且消息具有以下格式
verb: 'created',
data: <a dictionary of the attribute values of the new record (without associations)>
id: <the new record primary key>,
例如,继续上面的示例,所有监视 User
模型的客户端(除了发出请求的客户端)都将收到以下消息
id: 47,
verb: 'created',
data: {
id: 47,
name: 'Applejack',
hobby: 'pickin',
createdAt: 1485550575626,
updatedAt: 1485550603847
}
订阅了新关联子记录的客户端也将收到通知
由于我们示例中的新记录包含 involvedInPurchases
的初始值,这是一个由另一侧的 via
指向的关联,那么 addedTo
通知也将发送到订阅了关系另一侧这些现已关联子记录的任何客户端——在本例中,是购买 13 和 25。有关这些通知的结构的更多信息,请参阅 蓝图 > 添加到。