node.js
purple_lumpy
先,找一个方向,然后,收拾收拾好,一步一步来
展开
-
node.js express 返回一个静态页面
首先我们要有一个静态页面 .html 文件。然后,我们初始化一个express 项目。首先新建一个目录,进入它,如果没有下载express 的话,使用命名下载npm install express --save 。已经下载过,就跳过。接下来,我们再下载一个express 框架程序生成器并全局安装(用它创建一个新的Express 程序) npm install express-gener...原创 2019-03-15 11:40:14 · 7256 阅读 · 0 评论 -
Node.js 写一个简单的静态资源服务器 7 range范围请求
range 表示,当客户端向服务端发送请求时,可以申明请求内容的范围,比如从多少字节到多少字节。要实现Range,只需要:- 在请求的时候,在Request Headers 里面放一个range字段,来申明想要的范围,如range: bytes=[start]-[end]- 在响应中,我们也需要加一个响应头,表示服务器可以处理的数据格式为字节,Accept-Ranges: byt...原创 2019-04-29 12:56:09 · 391 阅读 · 0 评论 -
Node.js 写一个简单的静态服务器 4 使用模板引擎返回一个html 文件
好的,前面我们写了一个简单到不可用的功能。现在,我们实现一下,返回的是一个友好的界面,如果返回值中有路径的话,那么它是可以点击并查看的。那我们就需要模板引擎,这儿,我们使用 EJS首先,我们安装 EJShttps://github.com/mde/ejs,https://ejs.bootcss.com/npm install ejs安装好了后,我们就开始写代码了。我们先...原创 2019-04-24 17:26:17 · 311 阅读 · 0 评论 -
Node.js 写一个简单的静态服务器 3 使用Promise 优化代码
前面,我们简单的把功能实现了。实现了访问项目的资源文件。那么这里,我们进行一下代码优化,把代码中一些回调,用Promise 的方法重写一下。下面是之前的代码:const path = require('path');const http = require('http');const fs = require('fs');const conf = require('./config...原创 2019-04-23 15:42:16 · 148 阅读 · 0 评论 -
Node.js 写一个简单的静态服务器 2
下来,我们来写,根据用户请求来的 URL 进行判断:如果要访问的是文件夹,就返回文件夹下的列表;如果是文件,就返回文件的内容。我们知道,用户请求的东西都封装到 req 中。然后呢,我们可以在vs code 中debug 看看req 里面包含了哪些内容,如下。那我们怎么拿到请求的url 呢,可以看到,req 里面有一个url 属性,我们获取它就可以了。我们的需求就是,把用户当前执...原创 2019-04-23 14:59:51 · 123 阅读 · 0 评论 -
Node.js 写一个简单的静态资源服务器 6 压缩文件
我们在Chrome 的DevTools 里打开 network 面板,看一下我们的一个请求,它的Request Header 中有一项是“Accept-Encoding”,它是指浏览器可以接受的压缩格式为 gzip, deflate, br。下图中,Response Header 中 “Content-Encoding” 指,返回的数据是 gzip 格式的。使用压缩格式,最大的好处...原创 2019-04-26 16:25:12 · 180 阅读 · 1 评论 -
Node.js 写一个简单的静态服务器 5 MIME
MIME - Multipurpose Internet Mail Extensions , 它是描述消息内容的类型的因特网标准。http://www.w3school.com.cn/media/media_mimeref.asp我们之前在代码中设置的“Content-Type”, 为 "text/plain" 与 "text/html" 。就是设置两种不同的MIME 。我们常用的还有...原创 2019-04-26 14:42:59 · 299 阅读 · 0 评论 -
Node.js 写一个简单的静态服务器 1
为了学习Node.js 开始做一个简单的小项目,静态服务器。我们先在码云上新建一个项目,然后再克隆到本地。然后呢,我们开始来写代码啦。静态服务器,本质上,就是 HTTP 的请求与响应,客服端发送 HTTP 请求,服务端传一个HTTP 响应。而这中间,需要我们来先了解 http 模块。这是官方文档中http 模块部分http://nodejs.cn/api/http.html...原创 2019-04-16 22:44:11 · 179 阅读 · 0 评论 -
node.js 中的process 对象
process 对象是node.js 中一个很重要的对象。process 即进程,这个对象里面包含了很多与进程相关的方法。下面这段,是官网https://nodejs.org/api/process.html 的介绍Theprocessobject is aglobalthat provides information about, and control over, the...原创 2019-04-09 18:01:37 · 343 阅读 · 0 评论 -
node.js 基础 API - fs、fs 的流式读取、解决回调地狱
fs 即文件系统http://nodejs.cn/api/fs.html通过require 使用该模块:const fs = require('fs');所有文件系统操作都具有同步和异步的形式。【推荐异步】异步的形式总是将完成回调作为其最后一个参数。 传给完成回调的参数取决于具体方法,但第一个参数始终预留用于异常。 如果操作成功完成,则第一个参数将为null或undef...原创 2019-04-11 17:31:14 · 411 阅读 · 0 评论 -
node.js 基础 API - events
events 即事件对象http://nodejs.cn/api/events.html大多数 Node.js 核心API 都采用异步事件驱动架构,比如 I/O 操作,当主进程遇到 I/O 操作时,就会把 I/O 交给底层,然后完成后会通知主进程。通知方式是触发一个事件,以此来告诉主进程。例如,net.Server会在每次有新连接时触发事件,fs.ReadStream会在打开文件时...原创 2019-04-11 16:50:58 · 102 阅读 · 0 评论 -
node.js 基础API - buffer
Node.js 中 有两种频率很高的操作:文件,网络。这两种操作,有一个共同点,都需要处理二进制数据。Node.js 中的Buffer API,就是处理二进制数据的。由于它使用的频率很高,因此它被挂到了 global 对象上。这样我们就不需要require 就可以直接用了。关于 Buffer 有以下几点:- Buffer 用于处理二进制数据流- 实例类似整数数组,数组的大小固定...原创 2019-04-11 15:13:24 · 104 阅读 · 0 评论 -
node.js 基础API - path
path 模块是处理路径的相关操作。可以在这个链接里面看path 模块的APIhttp://nodejs.cn/api/path.html先来试一下 path.normalize 函数,它可以把路径中不规范的地方矫正过来,如下。const { normalize } = require('path');console.log(normalize('/user//local/bi...原创 2019-04-10 16:55:58 · 116 阅读 · 0 评论 -
nvm - node版本管理
nvm 是node 的版本管理工具,可切换多个node 版本在Mac 上,只需要使用 Homebrew 下载 nvm 即可。brew install nvm使用nvm 也很简单nvm list 查看当前所有的node 版本nvm install v10.13.0 安装指定的版本nvm use --delete-prefix 10.13.0 切换到指定的版本...原创 2019-06-30 23:18:47 · 147 阅读 · 0 评论