node--静态服务器

1、同步读取文件

const data = fs.readFileSync('./model/mime.json');
 
// 这里是添加了可以正常链接其他格式文件的服务器
const http = require('http')
const url = require('url')
const fs = require('fs')
const path = require('path')
const mimeModel = require('./model/getmimefromfile')

http.createServer((req, res) => {
  // 只取路径,不要后面的查询字符串
  let pathName = url.parse(req.url).pathname

  // 过滤无效请求
  if (pathName === '/') {
    //默认加载首页
    pathName = '/index.html'
  }

  //获取文件后缀名
  const extname = path.extname(pathName)

  if (pathName !== '/favicon.ico') {
    // 文件操作引入static下的相应文件

    //静态托管文件
    fs.readFile('static/' + pathName, (err, data) => {
      if (err) {
        // 错误处理
        fs.readFile('static/404.html', (err, data) => {
          res.writeHead(200, {
            'Content-Type': "text/html;charset=utf8"
          })
          res.write(data)
          res.end()
        })
      } else {
        // 记得设置相应头
        let mime = mimeModel.getMime(fs, extname)
        console.log(mime)
        res.writeHead(200, {
          "Content-Type": mime + ";charset='utf8'"
        })
        res.write(data)
        res.end()
      }
    })
  }
}).listen(8080, () => {
  console.log('server is running')
})

 

转载于:https://www.cnblogs.com/Tanqurey/p/11143929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Node.js 来为静态资源(如 HTML、CSS、JavaScript 文件)提供服务。可以按照以下步骤进行操作: 1. 创建一个新的 Node.js 项目,并在项目文件夹中创建一个名为 `public`(或其他你想要的名称)的文件夹,用于存放静态资源文件。 2. 在你的项目文件夹中创建一个名为 `server.js`(或其他你喜欢的名称)的文件,作为你的 Node.js 服务器代码的入口文件。 3. 在 `server.js` 文件中引入 Node.js 的核心模块 `http` 和 `fs`(文件系统)模块,以及其他可能需要的模块。 4. 使用 `http` 模块创建一个 HTTP 服务器,并指定对于每个请求的处理逻辑。 5. 在请求处理逻辑中,判断请求的 URL 路径是否对应静态资源文件夹中的文件。如果是,使用 `fs` 模块读取该文件,并将其作为响应的内容返回给客户端。 6. 如果请求的路径不对应任何静态资源文件,你可以选择返回一个 404 错误页面或其他适当的响应。 7. 在服务器逻辑设置完成后,使用指定的端口号启动服务器。 下面是一个简单示例: ```javascript const http = require('http'); const fs = require('fs'); const path = require('path'); const server = http.createServer((req, res) => { const filePath = path.join(__dirname, 'public', req.url); const fileExtension = path.extname(filePath); if (fileExtension === '.html' || fileExtension === '.css' || fileExtension === '.js') { fs.readFile(filePath, 'utf8', (err, content) => { if (err) { res.writeHead(404); res.end('404 Not Found'); } else { res.writeHead(200, { 'Content-Type': getContentType(fileExtension) }); res.end(content); } }); } else { res.writeHead(404); res.end('404 Not Found'); } }); const port = 3000; server.listen(port, () => { console.log(`Server listening on port ${port}`); }); function getContentType(fileExtension) { switch (fileExtension) { case '.html': return 'text/html'; case '.css': return 'text/css'; case '.js': return 'text/javascript'; default: return 'text/plain'; } } ``` 以上代码示例会在本地启动一个简单的 Node.js 服务器,用于提供静态资源文件。将你的静态资源文件放置在 `public` 文件夹中,并使用相应的 URL 路径进行访问。 请注意,这只是一个简单的示例,并没有处理缓存、压缩等更高级的静态资源服务功能。你可以根据需求进行更复杂的配置和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值