当前位置: 首页 > 知识库问答 >
问题:

为什么bodyParser返回未定义的?

牛经赋
2023-03-14

我找不到这个职位的申请书http://127.0.0.1:3001/users?name=Slava.

服务器响应“需要名称”。方法getUsers正常工作。数据库工作正常,服务器。js也能工作。我在这里寻找类似的答案,但没有合适的答案。有一些非常古老的答案,但它们并不相关。

这是一项请求:http://127.0.0.1:3001/users?name=bob (我用邮递员送信)

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.log(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)

共有1个答案

姚智
2023-03-14

正文解析器用于解析POST请求(对于POST正文),这里必须使用req。查询而不是req。正文,跟进此问题。

 类似资料:
  • 我在chrome控制台中写了这样的表达式: 它返回:

  • 问题内容: 我试图制作一个延迟X毫秒执行异步函数的函数。 为了演示的目的,以下是异步函数,该函数采用URL: 目的 我在这里的目标是要有一个函数,它将接受X 的参数,然后每隔X ms调用一次,直到不再有其他参数为止。 基本上,我希望每次调用都用X ms分隔。 例如,假设我连续打电话20次。通常,这20个呼叫将立即进行。我想要的是确保20个呼叫之间都存在Xms的延迟。 暂定 解决这个问题的想法是建立

  • 问题内容: 我在这段代码上遇到问题;返回值返回为“ undefined”。有什么问题? 较新的代码: 我怎么称呼它: 问题答案: 根据您的修改进行更新 解决这些问题应可使代码正常工作。 旧答案 您正在以 同步 模式调用XMLHttpRequest ,这意味着它将 阻塞 脚本,直到请求完成为止,因为您是在阻塞调用之后(即请求已经完成之后)分配回调,因此您的代码永远不会收到通知。 由于同步模式会阻止脚

  • 下面JavaScript代码的目的是从随机用户生成器获取数据,并将JSON结果打印到控制台中。在声明后调用函数时,它返回为“未定义”。 为什么这个异步函数返回为未定义,而不是将fetch方法的结果打印到控制台?

  • 问题内容: 因此,当我打开灯箱时,我试图禁止在页面上滚动,而我发现这个确实有用的脚本非常有用。不幸的是,当我在自己的页面上使用它时,它也禁止在灯箱中滚动。我开始用警报调试代码,只是发现该事件。wheelDelta在我的页面上返回“undefined”,而在JSFiddle中,它返回-120。 问题答案: jQuery事件处理程序中的对象不能反映真实事件。是IE和Opera的非标准事件属性,可通过j

  • 我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性