2019-05-06 07:31:26 -04:00
|
|
|
|
---
|
|
|
|
|
id: 587d7fb7367417b2b2512c0a
|
2020-10-01 17:54:21 +02:00
|
|
|
|
title: 使用model.create()创建许多记录
|
2020-12-16 00:37:30 -07:00
|
|
|
|
challengeType: 2
|
|
|
|
|
forumTopicId: 301537
|
2021-01-13 03:31:00 +01:00
|
|
|
|
dashedName: create-many-records-with-model-create
|
2019-05-06 07:31:26 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
在一些情况下,比如进行数据库初始化,你会需要创建很多 model 实例来用作初始数据。`Model.create()` 接受一组像 `[{name:'John', ...}, {...}, ...]` 的数组作为第一个参数,并将其保存到数据库。
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --instructions--
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
修改 `createManyPeople` 方法,使用 `arrayOfPeople` 作为 `Model.create()` 的参数来创建多个 people 实例。
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
**注意:** 你可以使用在上一个挑战中创建的 model 来完成当前挑战。
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
应当成功地一次性创建多个数据
|
2019-05-06 07:31:26 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
(getUserInput) =>
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: getUserInput('url') + '/_api/create-many-people',
|
|
|
|
|
type: 'POST',
|
|
|
|
|
contentType: 'application/json',
|
|
|
|
|
data: JSON.stringify([
|
|
|
|
|
{ name: 'John', age: 24, favoriteFoods: ['pizza', 'salad'] },
|
|
|
|
|
{ name: 'Mary', age: 21, favoriteFoods: ['onions', 'chicken'] }
|
|
|
|
|
])
|
|
|
|
|
}).then(
|
|
|
|
|
(data) => {
|
|
|
|
|
assert.isArray(data, 'the response should be an array');
|
|
|
|
|
assert.equal(
|
|
|
|
|
data.length,
|
|
|
|
|
2,
|
|
|
|
|
'the response does not contain the expected number of items'
|
|
|
|
|
);
|
|
|
|
|
assert.equal(data[0].name, 'John', 'The first item is not correct');
|
|
|
|
|
assert.equal(
|
|
|
|
|
data[0].__v,
|
|
|
|
|
0,
|
|
|
|
|
'The first item should be not previously edited'
|
|
|
|
|
);
|
|
|
|
|
assert.equal(data[1].name, 'Mary', 'The second item is not correct');
|
|
|
|
|
assert.equal(
|
|
|
|
|
data[1].__v,
|
|
|
|
|
0,
|
|
|
|
|
'The second item should be not previously edited'
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
(xhr) => {
|
|
|
|
|
throw new Error(xhr.responseText);
|
|
|
|
|
}
|
|
|
|
|
);
|
2019-05-06 07:31:26 -04:00
|
|
|
|
```
|
2020-08-13 17:24:35 +02:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|
2021-01-13 00:31:18 +08:00
|
|
|
|
```js
|
|
|
|
|
/**
|
2021-01-13 03:31:00 +01:00
|
|
|
|
Backend challenges don't need solutions,
|
|
|
|
|
because they would need to be tested against a full working project.
|
|
|
|
|
Please check our contributing guidelines to learn more.
|
2021-01-13 00:31:18 +08:00
|
|
|
|
*/
|
|
|
|
|
```
|