node-10-express-路由基础-静态目录

1.what中间件

就是请求req和响应res之间的一个应用

浏览器向服务器发送一个请求后,服务器直接通过request定位属性的方式得到通过request携带过去的数据,就是用户输入的数据和浏览器本身的数据信息

这中间就一定有一个函数将这些数据分类做了处理,最后让request对象调用使用,这个处理函数就是我们所所得中间插件。

比如生活中的买家和汽车厂家,中间需要一个4s来搭桥,这个4s就类似于中间件
比如生活中的商家和消费者,中间需要一个平台(牟东,某宝)来搭桥,这个平台就类似于中间件
比如生活中的租客和房主,中间需要一个中介来搭桥,这个中介就类似于中间件

语法:

app.use("路由",function(req,res,next){});
express的路由匹配顺序是从上往下依次匹配


2.每个请求加事件戳

其实这里类似 日志的一个思想雏形

服务端需要记录接收到的每次请求具体信息 (比如参数,请求方式等)
还需要记录每次请求的时间,
因为生成环境出的问题,需要排查,有些也不容易复现,所以查看日志非常重要

这个中间件 匹配所有路由,所有的请求都会进来,也就能获取所有的请求信息
响应信息也可以获取,写到日志文件里面 形成清晰的日志,便于以后查看
这个正则比较简陋, 能理解意思就行

核心代码

app.use(/\/.*/, function (req, res, next) {
   //这里可以 获取请求的参数 ,返回的参数 
//写到日志文件里面 形成日志
    console.log(new Date().toLocaleString());
    // next是一个函数,调用next相当于告诉express,继续向下执行代码
    next();
});

3.路由

app.use("/admin",function(req,res,next){
    console.log("这是中间件请求的admin路由");
     next();
});
app.get("/admin",function(req,res){
    console.log("这是get请求的admin路由");
    res.end();
});

admin get和use都会匹配
admin/level1 只有use会匹配


4.总结

中间件语法与路由语法的区别:
1. 中间件语法里的回调函数里多一个next参数
2. 中间件的语法里可以不写第一个路由参数, 如果不写, 表示通配路由;
路由语法如果不写第一个参数,什么都匹配不上
3. 中间件语法的第一个参数对路由值的匹配是开头模糊匹配,
路由语法的第一个参数对路由值的匹配是精确匹配.


5.后续

更复杂的内容 放到token在祥讲


6.静态资源

可以设置多个静态资源目录
因为开发过程可能 图片资源单独放一个目录
音视频单独放一个资源目录

Express 在静态目录查找文件,因此,存放静态文件的目录名不会出现在 URL 中。

通过如下代码就可以将 public 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了

// public作为静态资源根目录
//里面可以放图片 css js等资源
app.use(express.static("public"))
app.use(express.static("public2"))
上面如果不行 可以加上路径
app.use(express.static(__dirname+"/public"))
app.use(express.static(__dirname+"/public2"))
更多信息查看下方链接

express-静态资源目录

地址栏换成你的端口 和静态资源目录下的文件名就哦了
Express 在静态目录查找文件,因此,存放静态文件的目录名不会出现在 URL 中。
  1. 现在,你就可以访问 public 目录中的所有文件
    http://localhost:3000/images/kitten.jpg
    http://localhost:3000/css/style.css
    http://localhost:3000/js/app.js
    http://localhost:3000/images/bg.png
    http://localhost:3000/hello.html

2.注意 不要带上静态资源目录的名字比如public这个在地址栏不要写 ,否则访问不到

3.可以把自己之前写的项目放到这个服务器目录下
然后再地址栏输入 通过浏览器访问

访问

6. 创建虚拟路径

1.静态资源路径写法1

app.use('/static', express.static(__dirname+'/public')

2.静态资源路径写法2

const path = require('path')
app.use(express.static(path.join(__dirname, 'public')))
现在,你就可以通过带有 /static 前缀地址来访问 public 目录中的文件
  1. http://localhost:3000/static/images/kitten.jpg
  2. http://localhost:3000/static/css/style.css
  3. http://localhost:3000/static/js/app.js
  4. http://localhost:3000/static/images/bg.png
  5. http://localhost:3000/static/hello.html

7.扩展话痨

这个目录就是服务器目录,比如phpwww目录

早期,或者说为了省事,测试的时候前端会把代码压缩给服务端,服务端同事解压后也会放入到他本地的服务器目录,然后给前端人员一个地址,前端在这个地址上测试,迭代,直到没有问题,在由后端人员发布到生产环境
大体流程是这样的,但是具体测试,谁把代码放到服务器不一定

现代互联网公司 会通过一些构建工具,例如我之前经常使用的是Jekins
里面主要是通过脚本配置来发布测试代码和线上代码
大体内容如下

  1. gitlab或者公司指定的仓库拉取代码
  2. 将拉取的代码通过一些指令远程拷贝到服务器指定目录

这其中第一步 例如gitlab上会有很多分支,测试环境的分支,开发环境的分支,线上环境的tag分支等
拉取代码肯定需要配置相应的gitlab对应权限的账号
不同环境不同的分支 都是配置,配置一次,以后自动化,点击对应的功能按钮就好

远程拷贝等一些常规指令,需要大体能看懂,之前还自学,外加向运维同学请教, 学了不少,可惜现在忘完了,看到指令的话还能认识,

这里边可能还牵扯到一些 名字 割接 ,跳板机
割接 比如网络扩容,设备更新,就是网络改造中的对接操作

跳板机因为有些服务器就只是服务器,存放资料的,硬盘,没有屏幕,而且肯定也都在大机房,或者海底,山里,往上面拷贝东西,肯定也不会让你直接访问的,需要通过中介,层层跳转过去操作,那些中介电脑就是跳板机


参考资料

express-静态资源目录


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理;
如果能帮助到有缘人,非常的荣幸,一切都是为了部落的崛起
共勉

你可能感兴趣的:(node-10-express-路由基础-静态目录)