当前位置: 首页 > news >正文

下面是 TypeScript + ESModule 版本的最小示例,和你项目更接近。

下面是 TypeScript + ESModule 版本的最小示例,和你项目更接近。

// 1) process
console.log("pid:", process.pid);
console.log("node version:", process.version);
console.log("argv:", process.argv.slice(2));
console.log("env NODE_ENV:", process.env.NODE_ENV);
 
 
// 2) Buffer
const buf = Buffer.from("hello", "utf8");
console.log(buf);
console.log(buf.toString("utf8"));
 
 
// 3) EventEmitter
import { EventEmitter } from "node:events";

const bus = new EventEmitter();
bus.on("ready", (msg: string) => console.log("event:", msg));
bus.emit("ready", "server started");
 
 
// 4) Stream + fs
import { createReadStream } from "node:fs";

const rs = createReadStream("./package.json", { encoding: "utf8" });
rs.on("data", (chunk) => console.log("chunk len:", chunk.length));
rs.on("end", () => console.log("read done"));
 
 
// 5) fs promises
import { writeFile, readFile } from "node:fs/promises";

await writeFile("./tmp.txt", "Node.js fs demo\n", "utf8");
const text = await readFile("./tmp.txt", "utf8");
console.log(text);
 
// 6) http server
import { createServer } from "node:http";

const server = createServer((req, res) => {
  res.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
  res.end("Hello Node.js");
});

server.listen(3000, () => {
  console.log("http://localhost:3000");
});
 
还有一个 ESM 常用替代:__dirname / __filename 在 ESM 里这样写:
import { fileURLToPath } from "node:url";
import { dirname } from "node:path";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

console.log(__filename);
console.log(__dirname);