node版本管理工具nvm
node -v //查看当前node 版本
nvm --help //查找nvm命令
nvm list //查看所有已安装的node版本
nvm use version //改变当前使用的nodejs版本,这个只是当前进程,需要修改默认版本
nvm alias default version //改变node的默认版本
内置模块
常用的内置模块:url, querystring, http, events, fs, stream, readline, crypto, zlib
url
parse:
const url = require('url')
const urlString = 'https://www.baidu.com:443/ad/index.html?id=8&name=mouse#tag=110'
const parsedStr = url.parse(urlString)
console.log(parsedStr)
执行结果
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.baidu.com:443',
port: '443',
hostname: 'www.baidu.com',
hash: '#tag=110',
search: '?id=8&name=mouse',
query: 'id=8&name=mouse',
pathname: '/ad/index.html',
path: '/ad/index.html?id=8&name=mouse',
href: 'https://www.baidu.com:443/ad/index.html?id=8&name=mouse#tag=110'
}
format:
const url = require('url');
const urlObject = {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.baidu.com:443',
port: '443',
hostname: 'www.baidu.com',
hash: '#tag=110',
search: '?id=8&name=mouse',
query: { id: '8', name: 'mouse' },
pathname: '/ad/index.html',
path: '/ad/index.html?id=8&name=mouse',
href: 'https://www.baidu.com:443/ad/index.html?id=8&name=mouse#tag=110',
};
const parsedObj = url.format(urlObject);
console.log(parsedObj);
执行结果:https://www.baidu.com:443/ad/index.html?id=8&name=mouse#tag=110
reaolve:
const url = require('url');
var a = url.resolve('/one/two/three', 'four');
var b = url.resolve('http://example.com/', '/one');
var c = url.resolve('http://example.com/one', '/two');
console.log(a);
console.log(b);
console.log(c);
执行结果:
/one/two/four
http://example.com/one
http://example.com/two
querystring
parse:将一个查询字符串转化为对象
const querystring = require('querystring');
var qs = 'x=3&y=4';
var parsed = querystring.parse(qs);
console.log(parsed);
执行结果:
[Object: null prototype] { x: '3', y: '4' }
stringify: 这个方法是将一个对象序列化成一个字符串,与querystring.parse相对
const querystring = require('querystring');
var qo = {
x: 3,
y: 4,
};
var parsed = querystring.stringify(qo);
console.log(parsed);
执行结果:x=3&y=4
escape: 可使传入的字符串进行编码
const querystring = require('querystring');
var str = 'id=3&city=北京&url=https://www.baidu.com';
var escaped = querystring.escape(str);
console.log(escaped);
执行结果:
id%3D3%26city%3D%E5%8C%97%E4%BA%AC%26url%3Dhttps%3A%2F%2Fwww.baidu.com
unescape:可将含有%的字符串进行解码
const querystring = require('querystring');
var str =
'id%3D3%26city%3D%E5%8C%97%E4%BA%AC%26url%3Dhttps%3A%2F%2Fwww.baidu.com';
var unescaped = querystring.unescape(str);
console.log(unescaped);
执行结果:id=3&city=北京&url=https://www.baidu.com
http/https
开启服务:
const http = require('http');
http
.createServer((req, res) => {
console.log('请求接口');
res.writeHead(200, {
'content-type': 'text/plain',
});
res.write('hello nodejs');
res.end();
})
.listen(3000);
http请求:
//get请求
https.get(`https://m.lagou.com/listmore.json${url}`, (res) => {
res.on('data', (chunk) => {
data += chunk
})
res.on('end', () => {
response.end(JSON.stringify({
ret: true,
data
}))
})
})
//request请求
const https = require('https')
const querystring = require('querystring')
const postData = querystring.stringify({
name:"123",
age:27
})
const options = {
protocol: 'https:',
hostname: 'ik9hkddr.qcloud.la',
method: 'POST',
port: 443,
path: '/index.php/trade/add_item',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(postData)
}
}
function doPost() {
let data
let req = https.request(options, (res) => {
res.on('data', chunk => data += chunk)
res.on('end', () => {
console.log(data)
})
})
req.write(postData)
req.end()
}
文件读写:
writeFile写文件会覆盖之前的内容。
const fs = require('fs');
fs.writeFile('./text.txt', 'hello2', (err, data) => {
if (err) {
} else {
console.log('文件读写成功');
}
});
进程管理
代码:
function main(argv) {
console.log(argv);
}
main(process.argv.slice(2));//process是内置模块
执行: