Я пытаюсь создать простую реставрацию для моего сервера коа.
вот мой код
const Koa = require('koa');
const app = new Koa();
const json = require('koa-json')
let Router = require('koa-router');
let router = new Router();
let users = [
{ name: 'Kevin', email: 'k@gmail.com' },
{ name: 'Star', email: 'sss@gmail.com' },
{ name: 'Vick', email: 'V@gmail.com' },
]
router
.get('/user', list)
.get('/user/:id', detail)
.post('/user/:id', update)
.post('/user/create', create)
function list(ctx) {
ctx.body = users
}
function detail(ctx) {
ctx.body = users[ctx.params.id]
}
function create(ctx) {
new_user = ctx.request.body
users.push(new_user)
ctx.body = users
}
function update(ctx) {
ctx.body = Object.assign(users[ctx.params.id], ctx.request.body)
}
Когда я пытаюсь запустить метод post create, я получаю эту ошибку.
TypeError: Cannot convert undefined or null to object
at Function.assign (<anonymous>)
at update (E:\project\javascript\nodejs\KoaAPI\person\server.js:38:20)
Я использовал метод post, а введенный URL был user / create, я даже не запускал метод post * .
Однако, когдаЯ переключаю порядок кода, ставлю пост создания до обновления, как это:
router
.get('/user', list)
.get('/user/:id', detail)
.post('/user/create', create)
.post('/user/:id', update)
Все работает отлично.Может кто-нибудь объяснить мне, почему?Спасибо.