cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索

Node 分类

9月
08
更新于
9月08
2020
Node

关于node的那些事(进阶篇)

发表于 2020-07-02 | 热度 ℃
| 字数统计: 1,802 (字) | 阅读时长: 7 (分钟)

👨提问:注册路由时 app.get、app.use、app.all 的区别是什么?

app.use(path,callback)

app.use是express用来调用中间件的方法。中间件通常不处理请求和响应,一般只处理输入数据,并将其交给队列中的下一个处理程序,比如下面这个例子app.use (‘/user’),那么只要路径以 /user 开始即可匹配,如 /user/tree 就可以匹配。

app.all()

app.all 是路由中指代所有的请求方式,用作路由处理,匹配完整路径,在app.use之后可以理解为包含了app.get、app.post等的定义,比如app.all(‘/ user/tree’),能同时覆盖:get(‘/user/tree’) 、 post(‘/user/tree’)、 put(‘/user/tree’) ,不过相对于app.use()的前缀匹配,它则是匹配具体的路 由。

all完整匹配,use只匹配前缀


阅读全文 »
9月
08
更新于
9月08
2020
Node

关于node的那些事(基础篇)

发表于 2020-06-21 | 热度 ℃
| 字数统计: 2,191 (字) | 阅读时长: 9 (分钟)

👨提问:最近Deno很火,会不会替代node的替代品,学node是不是没有前途?

莫慌,Node依旧是社区热捧的服务器端 JavaScript 运行环境,Deno的出现其实本质上是完善现阶段的Node(新轮子),包括原生支持TS、安全性、支持ES Module浏览器模块、等特征。万变不离其宗,虽然有了Deno,将来可能就不需要 Node.js,但是新事物总是需要不断推演和考验后,所以这一点而言,Node短时间内很 难被替换,毕竟背后依附着强大社区的支撑。

node 如何获取命令行传来的参数?

process.argv。process是一个全局变量,它提供当前 Node.js 进程的有关信息,而process.argv 属性则返回一个数组,数组中的信息包括启动Node.js进程时的命令行参数。

  • process.argv[0] : 返回启动Node.js进程的可执行文件所在的绝对路径
  • process.argv[1] : 为当前执行的JavaScript文件路径
  • process.argv.splice(2) : 移除前两者后,剩余的元素为其他命令行参数(也就是我们自定义部分)
1
2
3
4
5
6
7
8
9
"script": {
"serve": "node test.js arg1 arg2 arg3"
}

// test.js
const arguments = process.argv.splice(2) // [arg1, arg2, arg3]

// 结合commander
commander.parse(process.argv)

阅读全文 »
5月
17
更新于
5月17
2020
Node

大文件分片上传优化

发表于 2020-05-17 | 热度 ℃
| 字数统计: 2,014 (字) | 阅读时长: 9 (分钟)

在开发过程中,会遇到在网站上传 100 MB 以上的文件经常失败,重试也要等老半天。那么应该怎么做才能快速上传,就算失败了再次发送也能从上次中断的地方继续上传呢?

整体思路

第一步是结合项目背景,调研比较优化的解决方案。 文件上传失败是老生常谈的问题,常用方案是将一个大文件切片成多个小文件,并行请求接口进行上传,所有请求得到响应后,在服务器端合并所有的分片文件。当分片上传失败,可以在重新上传时进行判断,只上传上次失败的部分,减少用户的等待时间,缓解服务器压力。这就是分片上传文件。

流程图如下: upload-flow


阅读全文 »
3月
12
更新于
3月12
2019
Node

NodeJSHttp加载静态资源

发表于 2019-03-12 | 热度 ℃
| 字数统计: 973 (字) | 阅读时长: 5 (分钟)

问题场景:浏览器向后台发送请求后,后台返回一个html界面。但是在浏览器中没有加载js、css等静态资源,查找原因后发现是Content-Type的原因。浏览器不知道css、js等文件的文件格式,无法成功加载静态文件。所以,需要设置正确的文件格式。


阅读全文 »
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1