一:Http模块,Url模块
分别通过require('http'),require('url)导入Http模块和Url模块
使用
http.createServer()
方法创建服务器,并使用
listen
方法绑定
8888
端口。
函数通过
request, response
参数来接收和响应数据。
我们现在来看一下
request
里面能够使用的东西。
最关键的就是
request.url
属性,表示用户的请求
URL
地址。所有的路由设计,都是通过
req.url
来实现的。
我们比较关心的不是拿到
URL
,而是识别这个
URL
。
识别
URL
,用到了下面的 U
rl
模块
url模块常用的方法有三个,分别是parse() 解析模块,format() parse()操作的逆向操作,solve()添加或者替换地址,其中最常用的是parse()方法;
url.parse()第一个参数为一个url地址,我们通过设置第二个参数为true使得函数返回对象的query属性也为一个对象;不设置第二个参数默认为false,函数返回对象的query属性为一个字符串。话不多说,上图
这是没有设置第二个参数,默认为false的情况
这是设置了第二个参数为true的情况
下面来看一个使用了Http模块和Url模块的综合应用场景
在浏览器上运行
二:node.js模块化
说到node.js模块化就不得不提到CommonJs,CommonJs就是模块化的标准,而node.js就是CommonJs(模块化)的实现。
下面来演示一下node.js自定义模块的导出和导入:
定义tools.js模块
在exports.js模块中导入并打印
打印结果如下:
接下来我们换一种导出方式,使用module.exports。
直接就得了在tools.js模块中定义的obj对象
三:
npm init
生成
package.json,改变入口文件
在导入模块时,会先自动扫描node_modules文件夹,如果没有找到同名的才会按路径搜索
这是我的文件结构:
可以看到我写的路径在文件结构中根本找不到,但因为会先自动扫描node_modules包,所以成功运行
另外当我们导入一个包时,如果后面不接js文件名,会默认导入包下的index.js文件(如果有的话)
如图:
重点来了!!!我们可以通过
npm init
生成
package.json,改变入口文件
首先通过终端进入该目录(./util),并输入npm init --yes指令
进入该目录下生成的package.json文件并修改其中的main属性
在require('./util'),导入的就是tool.js模块了
好了,第一天的学习笔记就总结到这,新手生疏的很,望各位大佬多多包涵