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

使用数据存储的分页示例导致“错误:13内部:请求消息序列化失败:无效编码”

金成济
2023-03-14

我把这一页作为一个起点。

我的代码如下所示:

app.get('/gizmos', async (req, res, next) => {

  const pageSize = 3;
  const resText = [];
  const cursor = req.query.cursor;

  try {
    let query = datastore.createQuery('gizmo').limit(pageSize);

    if (cursor) {
      query = query.start(cursor);
    }

    const [results] = await datastore.runQuery(query);
    const [gizmos] = results[0];

    const info = results[1];

    if (info.moreResults !== Datastore.NO_MORE_RESULTS) {
    // If there are more results to retrieve, the end cursor is
    // automatically set on `info`. To get this value directly, access
    // the `endCursor` property.
        const nextUrl = req.protocol + "://" + req.get("host") + req.baseUrl + "?cursor=" + info.endCursor;
        console.log(nextUrl);
    }

    gizmos.forEach(gizmo => {

      const id = gizmo[Datastore.KEY].id;

      resText.push({
         "id" : id,
         "name" : gizmo.name,
  
      });

    });

    res
      .status(200)
      .set('Content-Type', 'text/plain')
      .send(resText)
      .end();
  } catch (error) {
    next(error);
  }
});

但它失败,出现500错误。日志是这样写的:

错误:13内部:请求消息序列化失败:Object.CallerrorFromStatus(/workspace/node_modules/@grpc/grpc-js/build/src/client.js:31:26)
在Object.onReceivestatus(/workspace/node_modules/@grpc/grpc-js/build/src/client.js:176:52)

有什么想法吗?

共有1个答案

曹波鸿
2023-03-14

将此作为社区维基发布,因为它基于@JimMorrison的评论。

这里的问题是,您在res.send()中传递了一个数组,但它需要一个字符串(给定text/plain内容类型),因此在这里使用它之前,您需要将这个数组转换为字符串。您可以通过使用以下代码来完成此操作:

res
  .status(200)
  .set('Content-Type', 'text/plain')
  .send(JSON.stringify(resText))
  .end();
 类似资料:
  • 我所有的绘图都很好,它们没有任何错误,就像我的XML文件一样。我试图使缓存无效并重建请帮助我也检查了我的代码,但没有错误

  • 任务:app:preBuild最新任务:app:preDebugBuild最新任务:app:compiledBugAIDL无源任务:app:compiledBugrenderScript无源任务:app:generateDebugBuildConfig最新任务:app:javaPreCompileDebug最新任务:app:mainApkListPersistenceDebug最新任务:app:g

  • <---JS StackTrace---> =====JS栈迹=================================================================== 安全上下文:0369632D1:create(This=036856A9)2:_Walk[034841A1:~764][PC=1CCAED1F](This=3A11A619,Visitor=3BCEFD

  • 我在Spring MongoRepository上有一个简单的分页请求,但MongoRepository显然在某个任意的高页面#之后开始发送不正确的结果。我在这里发帖是想知道我是否遗漏了什么,或者这可能是Spring MongoRepository的一个bug。 在我的测试中,我的测试mongo db中有14个元素,下面的分页请求工作良好(如果数据在那里,则检索数据):但是下面的PageReque

  • 当我试图在mLab上查询mongo实例时出错。我从Spring启动应用程序中请求它。到数据库的连接是稳定的。下面是控制台的日志。 监控线程成功连接到服务器,说明服务器描述{地址=ds131531.mlab.com:31531,类型=REPLICA_SET_PRIMARY,状态=CONNECTED,ok=true,version=ServerVersion{versionList=[3,4,15]}