node实现静态资源目录(根目录)

前面也讲述了,nodejs没有web容器,访问使用/filename是无法访问文件的,需要通过路由判断然后fs.readFile读取文件才可以!

项目作用,设置一个目录当做静态资源的根目录,类似于Apache的根目录,可以使用/filename访问,不存在文件反馈404页面!

案例代码:

/作业解析,使用readfile实现静态页面访问(雷同于Apache根目录);
const http=require("http");
const url=require("url");
const fs=require("fs");
const path=require("path");
const server=http.createServer(function(req,res){
//    不管用户输入什么网址,得到结果一样
//    获取用户的url网址,pathname(路径部分,不包括查询)
    var pathname=url.parse(req.url).pathname;
//    判断用户输入的url是一个文件还是文件夹,文件夹的情况自动追加文件夹下的index.html文件
    if(pathname.indexOf(".")==-1){
        //不存在.则表示访问的是文件夹,后面追加/index.html
        pathname+="/index.html"
    }
//    获取请求的资源路径(页面内包含引用资源,调取什么的不是直接关系的文件)
//    path.normalize格式化请求路径(请求的文件追加在static

总结:indexOf()判断字符是否存在,JSON.parse(data)转为data类型,重要的是回调的嵌套!判断出对应的mime类型可以对应类型显示!mime类型不正确,则请求资源不存在

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏咖啡的代码人生

IDEA/Git 设置多个push远程仓库或者同时提交多个push仓库

具体解决办法: 在隐藏文件.git 下有个config文件,打开,在最后一行添加以下信息 [remote "all"] url = https...

4977
来自专栏Python攻城狮

GitHub 系列之「向GitHub 提交代码」1.SSH2.生成SSH key3.GitHub 上添加 SSH key4.Push & Pull5.提交代码

你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能提...

712
来自专栏面朝大海春暖花开

springMVC+freemarker实现自定义标签

强烈建议2.3.20或其以上版本,注意还需要引入spring-context-support

962
来自专栏calvin

.Net Core Linux centos7行—jenkins linux 构建.net core web app

# wget -P /opt https://pkg.jenkins.io/redhat-stable/jenkins-2.7.4-1.1.noarch.rpm...

721
来自专栏小尘哥的专栏

centos7下redis的安装配置

3、下载源码到本地(wget http://download.redis.io/releases/redis-你需要的版本.tar.gz---我下载的是3.2....

1222
来自专栏技术博客

DevExpress A field with the name '' was not found on the selected data source.

绑定控件时发现的错误,找了很久终于找到原因了,可能也是大家没注意的地方,希望能给大家带来一些帮助。

1632
来自专栏技术专栏

Intellij IDEA 修改项目名称

2.9K2
来自专栏HTML5学堂

Git与通过Git添加提交文件

HTML5学堂-利利:前面几个礼拜,我们比较全面的介绍讲解了关于AJAX中相对比较高级的知识 - 跨域。本周周三的文章,想为大家介绍一款工具——Git。如果开发...

3637
来自专栏华仔的技术笔记

使用git命令方式将本地工程上传到Gitlab或Github

7057
来自专栏IT派

Vue + Node + Mongodb 开发一个完整博客流程

前言 前段时间刚把自己的个人网站写完, 于是这段时间因为事情不是太多,便整理了一下,写了个简易版的博客系统。 服务端用的是 koa2框架 进行开发。 技术栈 ...

5285

扫码关注云+社区