6

我对 Deno 很感兴趣,所以我试了一下。在此处找到有关构建 REST API 的教程。

所以,当我试图运行它时,我得到了这个 InvalidData 错误:

error: Uncaught InvalidData: data did not match any variant of untagged enum ArgsEnum
    at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
    at Object.sendAsync ($deno$/ops/dispatch_json.ts:98:10)
    at async Object.connect ($deno$/net.ts:216:11)
    at async Connection.startup (https://deno.land/x/postgres/connection.ts:138:17)
    at async Client.connect (https://deno.land/x/postgres/client.ts:14:5)
    at async Database.connect (file:///Users/svenhaaf/git/deno/logrocket_deno_api/db/database.js:17:5)

现在,在我看来,尝试连接到数据库时出了点问题,但我真的不知道是什么。

这个 InvalidData 错误是什么意思?我应该如何解决这个问题?

仅供参考我的 deno --version 打印:

deno 0.42.0
v8 8.2.308
typescript 3.8.3

代码:我从https://github.com/diogosouza/logrocket_deno_api克隆了 repo ,并且在 中,我从toconfig.js编辑了第 1 行,因为看起来 Deno.env 变成了一个对象而不是一个方法。const env = Deno.env()const env = Deno.env

4

1 回答 1

4

本教程未使用版本化 URL,并且deno-postgres正在使用的版本与 不兼容v0.42.0,因为https://deno.land/x/postgres/mod.ts是从master

更改db/database.js为 import from https://deno.land/x/postgres@v0.3.11/mod.ts,因为v0.3.11它是 Deno 的正确版本v0.42.0

import { Client } from "https://deno.land/x/postgres@v0.3.11/mod.ts";

如果您不希望代码在新的 Deno 或软件包版本发布时停止工作,请记住始终使用 URL 中的版本。

于 2020-05-12T22:20:53.340 回答