Я не могу получить тело запроса для POST http://127.0.0.1:3001/users?name=Слава.
Ответ сервера «Требуется имя». Метод getUsers работает корректно. RethinkDB работает хорошо, server.js тоже работает. Я искал похожие ответы здесь, но ничего подходящего нет. Есть очень старые ответы, но они не актуальны.
Это запрос: http://127.0.0.1:3001/users?имя=боб (я использую Postman для POST)
Почему bodyParser не работает в моем коде? Я понятия не имею, почему это происходит.
const Koa = require('koa')
const logger = require('koa-morgan')
const bodyParser = require('koa-bodyparser')
const Router = require('koa-router')
const r = require('rethinkdb')
const server = new Koa()
const router = new Router()
const db = async() => {
const connection = await r.connect({
host: 'localhost',
port: '28015',
db: 'getteamDB'
})
return connection;
}
server.use(bodyParser());
const insertUser = async(ctx, next) => {
await next()
// Get the db connection.
const connection = await db()
// Throw the error if the table does not exist.
var exists = await r.tableList().contains('users').run(connection)
if (exists === false) {
ctx.throw(500, 'users table does not exist')
}
let body = ctx.request.body || {}
console.info(body);
// Throw the error if no name.
if (body.name === undefined) {
ctx.throw(400, 'name is required')
}
// Throw the error if no email.
if (body.email === undefined) {
ctx.throw(400, 'email is required')
}
let document = {
name: body.name,
email: body.email
}
var result = await r.table('users')
.insert(document, {returnChanges: true})
.run(connection)
ctx.body = result
}
router
.post('/users', insertUser)
server
.use(router.routes())
.use(router.allowedMethods())
.use(logger('tiny')).listen(3001)





Анализатор тела используется для анализа запросов POST (для тела POST), здесь вы должны использовать req.query вместо req.body, ответьте на вопрос это.
пожалуйста, покажите только необходимую часть кода.. И вам нужен доступ к параметрам или телу запроса?