使用node做中间层,服务端渲染的需求,开始学习node.js
node的全局环境
global,process,与浏览器window,document类似。
common.js规范
暴露对象可以使用:
1 | exports.name = name; |
or
1 | module.exports = name; |
node 模块
分为很多模块,使用模块都需要单独引入:
1 | const name = require("moduleName"); |
url API
用于网络请求参数处理等需求。
url.parse(urlString[, parseQueryString[, slashesDenoteHost]])
- 将
urlString
解析为urlObj
。 parseQueryString
默认false
,将query解析为字符串:query=string
parseQueryString
为true
时,将query解析为对象:query: { query: 'string' }
;
1 | url.parse("https://user:[email protected]:8080/p/a/t/h?query=string#hash", true); |
slashesDenoteHost
(斜杠表示HOST),默认为false
,如果为urlString
不带协议头,如//simmzl.cn/movie?query=simmzl#hash
,则解析不出host
为simmzl.cn
,为true
则可以。
1 | url.parse("//simmzl.cn/music/?query=simmzl#hash",true,false); |
url.format(urlObj)
将url对象
格式化为url字符串
,与parse()
相反;
1 | url.format({ |
url.reslove(from to)
1 | const url = require('url'); |
querystring API
用于解析与格式化 URL 查询字符串
querystring.stringify(obj[, sep[, eq[, options]]])
将对象序列化为字符串
1 | // 默认 |
querystring.parse(str[, sep[, eq[, options]]])
将字符串反序列化为对象
1 | querystring.parse("name=simmzl&foo=foo&bar=bar&arr=tom&arr=jerry") |
querystring.escape(str) && ### querystring.unescape(str)
转义字符与反转义
1 | querystring.escape('<哈哈>'); |
events
像JavaScript一样事件的驱动
1 | // 引入events模块 |
readline
逐行读取数据
readline.createInterface(options)
创建一个interface
类
1 | const rl = readline.createInterface({ |
line事件
每当input
流接收到接收行结束符(\n、\r 或 \r\n)时触发 line
事件,监听器函数被调用时会带上一个包含接收的那一行输入的字符串作为参数。
1 | // 每回车一次执行一次 |