标签: deno

Deno 有 window 对象吗

Deno 声称与浏览器兼容。这是否意味着它有一个窗口/导航器对象,这在设置 window.location 等方面意味着什么?

deno

7
推荐指数
1
解决办法
1008
查看次数

在 Deno 中读取大型 JSON 文件

我经常发现自己在读取一个大的 JSON 文件(通常是一个对象数组),然后操作每个对象并写回一个新文件。

为了在 Node 中实现这一点(至少是读取数据部分),我通常使用 stream-json 模块来做这样的事情。

const fs = require('fs');
const StreamArray = require('stream-json/streamers/StreamArray');

const pipeline = fs.createReadStream('sample.json')
  .pipe(StreamArray.withParser());

pipeline.on('data', data => {
    //do something with each object in file
});
Run Code Online (Sandbox Code Playgroud)

我最近发现了 Deno,并且希望能够使用 Deno 完成这个工作流程。

看起来标准库中的readJSON方法将文件的全部内容读入内存,所以我不知道它是否适合处理大文件。

有没有一种方法可以通过使用 Deno 中内置的一些较低级别的方法从文件中流式传输数据来完成?

deno

7
推荐指数
1
解决办法
1910
查看次数

如何将命令行参数传递给 Deno?

我有一个Deno应用程序,我希望将一些命令行参数传递给它。我搜索了手册,但一无所获。

我尝试使用 Node.js 中使用的相同命令,假设它们可能会为 std 库共享一些命令,但效果不佳。

var args = process.argv.slice(2); 
// Uncaught ReferenceError: process is not defined
Run Code Online (Sandbox Code Playgroud)

有什么建议?

command-line-arguments cmdline-args deno

7
推荐指数
2
解决办法
3160
查看次数

如何使用 Deno 编写 TCP 聊天服务器?

真正让我相信 Node 强大的演示之一是 Ryan Dahl 在此视频中展示的简单 TCP 聊天服务器:https : //www.youtube.com/watch?v=jo_B4LTHi3I&t=28m23s

演示中的代码如下所示:

const net = require('net');
const server = net.createServer();

const sockets = [];

server.on('connection', (socket) => {
  sockets.push(socket);

  socket.on('data', (message) => {
    for (const current_socket of sockets) {
      if (current_socket !== socket) {
        current_socket.write(message);
      }
    }
  });

  socket.on('end', () => {
    const index = sockets.indexOf(socket);
    sockets.splice(index, 1);
  });
});

server.listen(8000, () => console.log('tcp server listening on port 8000'));
Run Code Online (Sandbox Code Playgroud)

我在 Deno 网站上找到的唯一 TCP 示例是一个回显服务器,如下所示:

const listener = Deno.listen({ port: 8080 …
Run Code Online (Sandbox Code Playgroud)

javascript tcp chat node.js deno

7
推荐指数
1
解决办法
1759
查看次数

如何查看当前 deno 版本中使用的打字稿版本?

我试过deno -V,它只提供 deno 的版本,不包括 typescript 版本。

$deno -V
deno 1.0.0-rc2
$ 
Run Code Online (Sandbox Code Playgroud)

javascript node.js deno

6
推荐指数
1
解决办法
711
查看次数

从 WebView 调用 Deno 函数。如何?

我在网上发现了这个非常酷的示例,介绍了如何使用WebViewDeno 运行。

是否可以从放置在 html 模板内的 HTML 按钮元素调用 Deno 应用程序内的函数?

看一看:

// Importing the webview library
import { WebView } from "https://deno.land/x/webview/mod.ts";
// Creating an HTML page
let html = `
  <html>
    <body>
        <h1>Hello from deno v${Deno.version.deno}</h1>
        <button type="button" onclick="test()">RUN TEST FUNCTION</button>
    </body>
  </html>
`;

function test() {

  console.log('You really can do that!');

}

// Creating and configuring the webview
const webview = new WebView({
  title: "Deno Webview Example",
  url: "data:text/html," + html,
  // url: 'https://www.google.com',
  width: 768,
  height: …
Run Code Online (Sandbox Code Playgroud)

javascript webview deno

6
推荐指数
1
解决办法
536
查看次数

如何在 Deno 中发送 UDP 数据?

我尝试在我的measure.ts脚本中使用以下代码:

Deno.DatagramConn.send(...)
Run Code Online (Sandbox Code Playgroud)

当我像这样运行我的脚本时:deno run --unstable --allow-all measure.ts我收到以下错误:

Property 'DatagramConn' does not exist on type 'typeof Deno'. 'Deno.DatagramConn' is an 
unstable API. Did you forget to run with the '--unstable' flag?
Run Code Online (Sandbox Code Playgroud)

Deno.DatagramConn这个错误似乎同时否认和确认了API的存在

同样我也尝试过

Deno.connect({transport : 'udp'})
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误(这可能是有意义的,因为 UDP 是“无连接”):

Type '"udp"' is not assignable to type '"tcp"
Run Code Online (Sandbox Code Playgroud)

udp deno

6
推荐指数
1
解决办法
1160
查看次数

通过 &lt;script src=""&gt; 加载 JavaScript ES6 模块并在 &lt;script&gt; 标签中导入所有导出是否相同?

无法理解我刚刚在关于deno bundle命令的 Deno 手册部分末尾阅读的两个示例之间的区别:

捆绑包也可以在 Web 浏览器中加载。bundle 是一个自包含的 ES 模块,所以 type 属性必须设置为“module”。例如:

<script type="module" src="website.bundle.js"></script>
Run Code Online (Sandbox Code Playgroud)

或者您可以将其导入另一个 ES 模块以使用:

<script type="module">
  import * as website from "website.bundle.js";
</script>
Run Code Online (Sandbox Code Playgroud)

我的印象是这两种形式都达到了相同的效果(即“在浏览器继续解析页面之前立即获取并执行”),而后者用于跟随脚本或想要缩小导入的范围(例如,如本答案所示)。


这可能被认为是其他问题的重复(见列表底部),但这些答案对我没有多大帮助,而且辅助资料似乎也没有表明我的假设是否正确。(另一方面,我很有可能忽略了一些明显的东西,并且不得不提高我的阅读理解能力......)

javascript script-tag es6-modules deno

6
推荐指数
1
解决办法
188
查看次数

将 Supabase 与 deno 结合使用

我正在尝试将 Supabase 与 deno 一起使用。我使用过import { createClient } from "https://esm.sh/@supabase/supabase-js",但它只给了我这样的错误 Module '"deno:///missing_dependency.d.ts"' uses 'export =' and cannot be used with 'export *'

database deno supabase

6
推荐指数
1
解决办法
3079
查看次数

Deno / Postgres“无效的对等证书内容:无效的对等证书”错误

我正在使用denodb 连接到 supabase postgres 服务器。

这是 deno 部署时出现的错误。

TLS 连接失败,并显示消息:无效的对等证书内容:无效的对等证书:UnsupportedCertVersion 默认为非加密连接

在此输入图像描述

在这里建立连接:

import { Database, PostgresConnector } from "https://deno.land/x/denodb/mod.ts";
import "https://deno.land/x/dotenv/load.ts";

export const connection = (() => {
  const DENODB_PGURL = Deno.env.get('DENODB_PGURL');

  if (DENODB_PGURL) {
    return new PostgresConnector({uri: DENODB_PGURL});  
  }

  const DENODB_HOST = Deno.env.get('DENODB_HOST');
  if (!DENODB_HOST) throw new Error('DENODB_HOST is not set');
  const DENODB_USERNAME = Deno.env.get('DENODB_USERNAME');
  if (!DENODB_USERNAME) throw new Error('DENODB_USERNAME is not set');
  const DENODB_PASSWORD = Deno.env.get('DENODB_HOST');
  if (!DENODB_PASSWORD) throw new Error('DENODB_PASSWORD is not set');
  const DENODB_DATABASE …
Run Code Online (Sandbox Code Playgroud)

postgresql deno tls1.3 supabase deno-deploy

6
推荐指数
1
解决办法
1598
查看次数