node-重要API学习

nodejs 中文网:http://nodejs.cn/api/querystring.html

node自动重启工具:nodemon

安装命令:sudo npm install -g nodemon

启动命令:nodemon http.js(书写node代码的js文件)

跨域方案:jsonp、cors、后端跨域

一、url

url.parse(url地址,将query转换为对象获取-布尔值,解析//开头的地址-布尔值)

将字符串转换为对象

const url = require('url');
const urlObj = url.parse('https:www.baidu.com?id=3&name="aaaa"&flag=true',true) //将地址转换为对象,对象中有地址的各个属性
console.log(urlObj.query) //得到query的对象

url.format(urlObject)

将对象转换为字符串

const url = require('url');
const urlString = url.format({
  protocol: 'https:',
  slashed: true,
  auth: null,
 	host: 'www.baidu.com:8080',
  port: '8080',
  hostname: 'www.baidu.com',
  hash: null,
  search: '?id=3&name=aaa',
  query: {id: '3',name; 'aaa'},
  pathname: '/api/list',
  path: '/api/list?id=3&name=aaa',
  href: 'https://www.baidu.com:8080/api/list/?id=3&name=aaa'
}) 
const.log(urlString); //https://www.baidu.com:8080/api/list/?id=3&name=aaa

url.resolve(from,to)

可以根据to中输入的是绝对路径还是相对路径,来和前面的地址进行拼接

const url = require('url');
url.resolve('https://www.baidu.com/api/list','/one'); //https:www.baidu.com/one
url.resolve('https://www.baidu.com/one/two','three'); //https://www.baidu.com/one/three
url.resolve('https://www.baidu.com/one/two','../three'); //https://www.baidu.com/three
二、Query string

querystring.parse(字符串,分隔符的形式)

将地址栏中的query字符串转换为对象

const querystring = require('querystring');
console.log(querystring.parse('id=3&name=aaa')); //{id: 3,name: aaa}
console.log(querystring.parse('id=3/name=aaa','/')); //{id: 3,name: aaa}
console.log(querystring.parse('id:3/name:aaa','/',':')); //{id: 3,name: aaa}

querystring.stringify(对象,格式化各个键值对之间的分隔符,格式化键和值之间的分隔符)

将对象转换为字符串

const querystring = require('querystring');
console.log(querystring.stringify({id:'3',name:'aaa'})) //id=3&name=aaa
console.log(querystring.stringify({id:'3',name:'aaa'},',')) //id=3,name=aaa
console.log(querystring.stringify({id:'3',name:'aaa'},',',':')) //id:3,name:aaa

querystring.escape(str) 对给定的 str 执行 URL 百分比编码

querystring.unescape(str) 对给定的 str 执行 URL 百分比解码

三、HTTP

http.createServer() 启动一个server

vue框架中的server也是通过node的createServer启动的

const http = require('http');
const server = http.createServer((request,response) => {
//response控制前端显示什么内容
  response.writeHead(200,{'content-type': 'text/html'})
  response.write('<b>str</b>'); //调用response的方法,返回给浏览器的内容---这里返回什么,前端就显示什么
  response.end();
})  //回调request-浏览器请求的时候携带的东西,response-返回给浏览器的东西
server.listen(8000)

get请求一个地址,地址返回内容,内容解析之后返回给浏览器

http.get()

const https = require('https');
https.get('地址',(res) => {
    console.log("状态码",res.statusCode);
    console.log("请求头",res.headers['content-type'])
    let error;
    let contentType = res.headers['content-type']
    if(res.statusCode !== 200) {
        error = new Error('Request Failed.\n' + `Status Code: ${res.statusCode}`);
    }else if(!/^application\/json/.test(contentType)) {
        error = new Error('Invalid content-type.\n' + `Expected application/json but received ${contentType}`); 
    }
    if(error) {
        console.error(error,error.message); //error是错误栈,error.message是new Error时传入的内容
        res.resume();
        return;
    }
    res.setEncoding('utf8');
    let rawData = '';
    res.on('data',(chunk) => {rawData+=chunk;});
    res.on('end',() => {
        try {
            const parsedData = JSON.parse(rawData);
            console.log(parsedData);
        }catch (e) {
            console.log(e.message)
        }
    });
}).on('error',(e) => {
    console.error(`Got error: ${e.message}`)
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值