如何从 Directus 数据库中提取数据到站点?

How to pull data from the Directus database to the site?

我在 Directus 中创建了一个数据库。我为站点创建了一个单独的项目,我将在其中添加数据。安装@directus/sdk。 image

但是导入的时候报错

未捕获语法错误:无法在模块外使用导入语句

这是我的代码

import { Directus } from '@directus/sdk';

const directus = new Directus('https://api.example.com/');

await directus.auth.login({
    email: 'admin@example.com',
    password: 'pass',
});
const articles = await directus.items('articles').readMany();

console.log({
    items: articles.data,
    total: articles.meta.total_count,
});

如何修复此错误? 为站点创建一个单独的项目是否正确?或者可以在数据库的同一个地方完成吗?

TLDR;面临的问题似乎不是 Directus 的问题。


您应该注意 software/code 的三个不同部分。

  1. 数据库。
  2. Directus 安装。
  3. 您的应用程序。

这是三个不同的东西,请确保您清楚其中的区别。数据库将存储在您选择的数据库中,MySQL、Postgres 等...Directus 仅连接到此数据库,如果您出于任何原因决定停止使用 Directus,它将保留。

您需要在一个位置安装 Directus。然后您需要在另一个位置编写您的应用程序,您可以在另一个位置使用 SDK 以便在您的应用程序中轻松使用 Directus API。

将您的应用程序作为一个单独的“项目”是正确的(如您所问)。

您收到错误 Cannot use import statement outside a module 的原因与 Directus 无关。当您错误地构建或编译您的应用程序(非 ES6)时,这是一个常见错误,因此我无法为您提供太多支持。

这里有一些有用的调试资源:

https://www.google.com/search?q=cannot+use+import+statement+outside+a+module

"Uncaught SyntaxError: Cannot use import statement outside a module" when importing ECMAScript 6

https://exerror.com/uncaught-syntaxerror-cannot-use-import-statement-outside-a-module-when-importing-ecmascript-6/