NodeJs的文件读写及Http服务器的创建

person 有无相生    watch_later 2024-08-10 10:11:09
visibility 175    class NodeJs,文件读写    bookmark 专栏

1. 基本的文件读写

在 Node.js 中,文件读写操作主要通过 fs 模块来实现。以下是一些常用的文件读写操作示例:

1.1 读取文件

const fs = require('fs');

// 异步读取文件
fs.readFile('example.txt', 'utf8', (err, data) => {
    if (err) {
        console.error('Error reading file:', err);
        return;
    }
    console.log('File content:', data);
});

在上面的示例中,fs.readFile 方法异步读取 example.txt 文件的内容,并通过回调函数处理读取结果。

1.2 写入文件

const fs = require('fs');

// 异步写入文件
fs.writeFile('output.txt', 'Hello, Node.js!', (err) => {
    if (err) {
        console.error('Error writing file:', err);
        return;
    }
    console.log('File has been saved!');
});

这里,fs.writeFile 方法将字符串 Hello, Node.js! 写入 output.txt 文件。如果文件不存在,会自动创建。

1.3 追加内容到文件

const fs = require('fs');

// 追加内容到文件
fs.appendFile('output.txt', '\nThis is an appended line.', (err) => {
    if (err) {
        console.error('Error appending to file:', err);
        return;
    }
    console.log('Content has been appended!');
});

fs.appendFile 方法用于向文件中追加内容,而不是覆盖文件的现有内容。

1.4 同步文件读写

const fs = require('fs');

try {
    const data = fs.readFileSync('example.txt', 'utf8');
    console.log('File content:', data);
} catch (err) {
    console.error('Error reading file:', err);
}

try {
    fs.writeFileSync('output.txt', 'Hello, Node.js!');
    console.log('File has been saved!');
} catch (err) {
    console.error('Error writing file:', err);
}

同步方法 fs.readFileSyncfs.writeFileSync 会阻塞代码的执行,直到操作完成。

2. 创建简单的 HTTP 服务器

Node.js 提供了 http 模块,使用它可以非常方便地创建一个简单的 HTTP 服务器。

2.1 创建一个 HTTP 服务器

const http = require('http');

// 创建服务器
const server = http.createServer((req, res) => {
    // 设置响应头
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    // 发送响应内容
    res.end('Hello, World!\n');
});

// 服务器监听端口 3000
server.listen(3000, () => {
    console.log('Server running at http://127.0.0.1:3000/');
});

在这个例子中,http.createServer 方法用于创建一个 HTTP 服务器,该服务器在接收到请求时返回一个 "Hello, World!" 消息。

2.2 处理不同的请求路径

const http = require('http');

const server = http.createServer((req, res) => {
    if (req.url === '/') {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Welcome to the homepage!\n');
    } else if (req.url === '/about') {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('This is the about page.\n');
    } else {
        res.statusCode = 404;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Page not found!\n');
    }
});

server.listen(3000, () => {
    console.log('Server running at http://127.0.0.1:3000/');
});

在这个示例中,服务器根据请求的路径(req.url)返回不同的响应内容。 / 路径返回主页内容,/about 路径返回关于页面内容,其他路径返回 404 错误。

总结

通过掌握文件读写和创建 HTTP 服务器的基础知识,你可以开始构建简单的 Node.js 应用程序。文件读写是处理文件系统操作的核心,而 HTTP 服务器则是构建网络服务的基础。通过这些基本功能的组合,Node.js 可以轻松实现从简单的工具到复杂的 Web 应用程序。

评论区
评论列表
menu