Deno for Node.js developers.
- 1.0 Class
Console
// Node
const { Console } = console;
new Console({ stdout: process.stdout, stderr: process.stderror });
// Deno
const { Console } = console;
// undefined
// Chrome
const { Console } = console;
// undefined
- 1.1
console.error
// Node
console.error(new Error("Whoops, something bad happened"));
// Error: Whoops, something bad happened
// at REPL1:1:15
// at Script.runInThisContext (vm.js:133:18)
// at REPLServer.defaultEval (repl.js:484:29)
// at bound (domain.js:413:15)
// at REPLServer.runBound [as eval] (domain.js:424:12)
// at REPLServer.onLine (repl.js:817:10)
// at REPLServer.emit (events.js:327:22)
// at REPLServer.EventEmitter.emit (domain.js:467:12)
// at REPLServer.Interface._onLine (readline.js:337:10)
// at REPLServer.Interface._line (readline.js:666:8)
// Deno
console.error(new Error("Whoops, something bad happened"));
// Error: Whoops, something bad happened
// at <anonymous>:2:15
// Chrome
console.error(new Error("Whoops, something bad happened"));
// Error: Whoops, something bad happened
// at <anonymous>:1:15
- 1.1
console.trace
// Node
console.trace("Show me");
// Trace: Show me
// at REPL14:1:9
// at Script.runInThisContext (vm.js:133:18)
// at REPLServer.defaultEval (repl.js:484:29)
// at bound (domain.js:413:15)
// at REPLServer.runBound [as eval] (domain.js:424:12)
// at REPLServer.onLine (repl.js:817:10)
// at REPLServer.emit (events.js:327:22)
// at REPLServer.EventEmitter.emit (domain.js:467:12)
// at REPLServer.Interface._onLine (readline.js:337:10)
// at REPLServer.Interface._line (readline.js:666:8)
// Deno
console.trace("Show me");
// Trace: Show me
// at <anonymous>:2:9
// Chrome
console.trace("Show me");
// Show me
// (anonymous) @ VM45:1
- 2.0 Reading file
// Node
import fs from "fs/promises";
const data = await fs.readFile("./README.md", "utf8");
// Deno
// Requires `--allow-read` permission
const data = await Deno.readTextFile("./README.md");
- 2.1 Writing file
// Node
import fs from "fs/promises";
const content = "Some content!";
await fs.writeFile("./file.txt", content);
// Deno
// Requires `--allow-write` permission
const content = "Some content!";
await Deno.writeTextFile("./file.txt", content);
- 2.2 File descriptors
// Node
import fs from "fs/promises";
const file = await fs.open("./file.txt");
// Deno
// Requires `allow-read` and/or `allow-write` permissions depending on options.
const file = await Deno.open("./file.txt");
- 3.0 Path all in one
// Node
// All functionalities associated to path are under `path` module
const path = require("path");
// Such as basename
console.log(path.basename('/foo/bar/baz/asdf/quux.html')) // `quux.html`
// And all platform dependant code is under `posix` and `win32` submodules
// Such as delimiter
// for posix
console.log(path.posix.delimiter); // `:`
// for win32
console.log(path.win32.delimiter); // `;`
// Deno
// Deno is very similar to the Node
import { win32, posix, basename } from "https://deno.land/std@0.97.0/path/mod.ts"
console.log(basename('/foo/bar/baz/asdf/quux.html')) // `quuz.html`
// And of course
// delimiter for posix
console.log(posix.delimiter); // `:`
// delimiter for win32
console.log(win32.delimiter); // `;`