在上一篇中,解决中文乱码的方法好像行不通,但是在网上找到了可用的方法:
res.setHeader('Content-Type', 'text/plain;charset=utf-8');
根据不同的url响应不同的html内容
核心实现步骤:
- 获取请求的URL地址
- 设置默认的响应内容为404 not found
- 判断用户请求是否为/或者index.html首页
- 判断用户请求是否为/about.html关于页面
- 设置content-type响应头,防止中文乱码
- 使用res.end()把内容响应给客户端
但是我的页面又拒绝接入了...
模块化
编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并相互依赖的多个小模块
好处: 防止了全局变量污染的问题
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
向外共享模块作用域中的成员
module对象
在每个.js自定义模块中都有一个module对象,它里面存储了和当前模块有关的信息,打印如下:
module.exports对象
在自定义模块中,可以使用module.exports对象,将模块中的成员共享出去,供外界使用.外界用require()方法导入自定义模块,得到的就是module.exports所指向的对象
由于module.exports是一个对象,我们可以在这个对象上挂载属性和方法
也可以这么写:
使用require方法时,导入的结果,永远以module.exports指向的对象为准
此时module.exports已经指向了一个全新的对象
一些误区:
node.js中的模块化规范
node.js遵循了commonJS的模块化规范,规定了模块化特性和各模块之间如何相互依赖
npm与包
什么是包
node.js中的第三方模块又叫做包
包的来源
不同于node.js中的内置模块,包是由第三方个人或者团队开发出来的,免费供所有人使用
注意
node.js中的包都是免费且开源的,不需要付费就能使用
如何下载包
格式化时间的高级做法
①使用npm包管理工具,在项目中安装格式化时间的包moment
②使用require( )导入格式化时间的包
③参考moment的官方API文档对时间进行格式化
使用:
文档里还有许多使用的方法,不过现在好像已经不推荐使用moment的包而是day.js了.
在我们新建了一个项目文件夹时,先不要写代码,而是新建一个package.json的文件,只需执行一次
注意:
①上述命令只能在英文的目录下成功运行,所以项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格
②运行npm install命令安装包的时候,npm包管理工具会自动把包的名称和版本号,记录到package.json中
由于把第三方的包剔除掉再上传GitHub,因此我们在打开项目时,需要把包全部下载了才能正常的运行,那么如何下载所有的包呢?
安装所有包
卸载包
安装完以后就会多出个属性 devDependencies的属性
npm config set registry=https://registry.npm.taobao.org/
注意等号两侧不要空格
后面学习express