用 node.js 开启一个 http服务,返回文件或信息

代码

// 引入模块
var http = require('http');
var fs = require('fs')
// 创建http 服务
var server = http.createServer();

// 监听客户端请求
// 1.返回文字信息
server.on('request', (req,res) => {
    // 设置响应头 响应为纯文本
    res.setHeader("Content-type","text/plain;charset=utf-8"); 

    //  处理客户端请求逻辑
    console.log(); 
    // 1.返回文字信息
    res.end(req.method); // 必须结束,不然浏览器会被刮起
    
})

// 2.返回一个html页面
/* 不同于 apache node.js 没有web容器的概念,也就是说没有根目录,没有文件夹静态路径的概念 */
var server = http.createServer( (req, res) => {
    // node 必须使用 ./index.js 路径写法  返回文件
    fs.readFile('../缓冲运动.html',(err,data) =>{
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/html');
        if (!err) {
            res.end(data);
        }else {
            res.end('html not found');
        }
    });
})

//3.返回路由页面
var server = http.createServer(function(req, res){
    //http://127.0.0.1:3007/index_01.html    req.url =/index_01.html
    //http://127.0.0.1:3007/index_02.html    req.url =/index_02.html
      var url = req.url;
      //如果你愿意、也可以手写url以隐藏文件路径
      //比如
      if (req.url == '/lalala') url = './缓冲运动.html';
        fs.readFile('.'+url,(err,data) =>{
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/html');
            if (!err) {
                res.end(data);
            }else {
                res.end('html not found');
            }
        });
    });


// 启动http 服务,监听 3000 端口
server.listen(3000, () => {
    console.log('服务启动成功,监听3000端口')
})
var foo = 'bar';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Node.js可以轻松地编写一个文件资源服务器,只需要使用Node.js的 fs 模块中的 readFile 和 writeFile 方法,就可以轻松实现文件的读取和写入。下面是一个简单的示例:const fs = require('fs'); fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); fs.writeFile('file.txt', 'This is an example', (err) => { if (err) throw err; console.log('The file has been saved!'); }); ### 回答2: 使用Node.js编写一个文件资源服务器相对简单,可以按以下步骤进行: 1. 首先,确保已经安装了Node.js和npm包管理器。可以在终端中输入以下命令来检查是否已安装: ``` node -v npm -v ``` 2. 在项目文件夹中创建一个新的文件server.js,并在该文件中导入必要的模块。可以使用以下代码: ``` const http = require('http'); const fs = require('fs'); const path = require('path'); ``` 3. 创建一个HTTP服务器并监听指定的端口。可以使用以下代码: ``` const server = http.createServer((req, res) => { // 处理请求 }); const port = 3000; // 或者你想要使用的其他端口 server.listen(port, () => { console.log(`Server running at http://localhost:${port}/`); }); ``` 4. 在请求处理函数中,根据请求的URL路径获取所请求的文件路径,并使用fs模块判断文件是否存在。如果存在,则将文件内容作为响应返回给客户端。可以使用以下代码: ``` const server = http.createServer((req, res) => { const filePath = path.join(__dirname, req.url); fs.exists(filePath, (exists) => { if (exists) { fs.readFile(filePath, (err, data) => { if (err) { res.writeHead(500); res.end('Internal Server Error'); } else { res.writeHead(200); res.end(data); } }); } else { res.writeHead(404); res.end('File Not Found'); } }); }); ``` 5. 运行该服务器,打开终端,进入项目文件夹,并输入以下命令启动服务器: ``` node server.js ``` 至此,你已经成功创建了一个简单的文件资源服务器。当有请求时,服务器会查找所请求的文件,如果存在则将文件内容返回给客户端,如果不存在则返回"File Not Found"的错误信息。 ### 回答3: Node.js是基于Chrome V8引擎的JavaScript运行时环境,可以帮助我们在服务器端构建高性能的网络应用程序。使用Node.js,我们可以很方便地搭建一个文件资源服务器。 首先,我们需要创建一个新的Node.js项目并安装必要的依赖项。可以使用命令行进入项目文件夹,然后执行以下命令来初始化项目: ``` npm init ``` 按照提示进行初始化,并在项目根目录下创建一个名为 "server.js" 的文件作为服务器的主要代码文件。 接下来,我们需要使用Node.js的内置模块“http”来创建一个HTTP服务器。在 "server.js" 文件中,添加以下代码: ```javascript const http = require('http'); const fs = require('fs'); const server = http.createServer((req, res) => { // 获取文件路径 const filePath = req.url; // 读取文件 fs.readFile(filePath, (err, data) => { if (err) { // 发生错误时返回404 res.writeHead(404); res.end("File not found"); return; } // 返回文件内容和Content-Type res.writeHead(200, { 'Content-Type': 'text/html' }); res.end(data); }); }); // 监听端口号 const port = 3000; server.listen(port, () => { console.log(`Server running at http://localhost:${port}/`); }); ``` 以上代码创建了一个简单的HTTP服务器,当访问服务器时,会根据URL路径读取相应的文件,并将文件内容返回给客户端。如果文件不存在,则返回404错误。 为了测试服务器,我们可以将一些文件放置在与 "server.js" 文件相同的目录下,并尝试访问它们。例如,如果我们有一个名为 "index.html" 的文件,可以使用以下URL访问它:http://localhost:3000/index.html 以上就是使用Node.js编写一个文件资源服务器的基本步骤。你可以根据实际需求进行进一步的扩展和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值