Open weblixin opened 4 years ago
"proxy": "http://localhost:2019",
fetch(
'/first'
)
.then((res) => res.json())
.then(({ data }) => {
setData(data);
}).catch((err) => {
console.log(err);
});
fetch('/first', {
method: 'POST',
body: 'a=post请求!&b=asd',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}).then(res => res.json()).then(((res) => {
setData(res.a);
})).catch(err => {
console.log(err);
});
const Koa = require('koa');
const app = new Koa();
const poit = 2019;
app.use(async (ctx) => {
if (ctx.method === 'GET') {
if (ctx.url === '/first') {
ctx.body = { data: 'get请求!' }
}
return;
}
if (ctx.method === 'POST') {
if (ctx.url === '/first') {
let postData = await parsePostDate(ctx)
ctx.body = postData
}
return;
}
ctx.body = '<h2>404</h2>'
})
const parsePostDate = (ctx) => {
return new Promise((resolve, reject) => {
try {
let postData = ""
ctx.req.on('data', (data) => {
postData += data
})
ctx.req.addListener("end", function () {
let parseData = parseQueryStr(postData)
resolve(parseData)
})
} catch (error) {
reject(error)
}
})
}
const parseQueryStr = (queryStr) => {
const queryData = {}
const queryStrList = queryStr.split('&')
for (let [index, queryStr] of queryStrList.entries()) {
let itemList = queryStr.split('=')
queryData[itemList[0]] = decodeURIComponent(itemList[1])
}
return queryData
}
app.listen(poit, () => {
console.log(`在${poit}端口启动`);
});
pm2 start index.js
location / {
root /usr/share/nginx/build/;
index index.html index.htm;
if (!-e $request_filename) {
proxy_pass http://127.0.0.1:2019;
}
}
逻辑运算符用于连接布尔型表达式。在Java中不同于数学的逻辑表达 3<X<5 ,java 中应该写成 x>3 & x<5
"&" 和"&&" 的区别
单个"&",左边无论真假,右边都进行计算。
双个"&",左边为假,右边不进行计算。
"|"和"||" 的区别
单个"|",左边无论真假,右边都进行计算。
双个"|",左边为真,右边不进行计算。
"|"和"&" 做位运算
二进制进行|位运算,只有0|0时候为0 ,其他为1,比如6|5 先把6和5换成二进制。6的二进制为110,5的二进制为101 那么用位运算0|0得0 只要有1得1,算出为111,111换成十进制为7,所有6|5等于7
二进制进行&位运算,只有1&1得1,其他得0,同理可得6&5算出二进制得100,100换成十进制为4
"^"异或运算和"~"反码
任何相同二进制异或运算都得0,1^1=0,0^0=0,不相同的异或运算都得1,1^0=1,0^1=1。同理6^5的011
那么011的十进制是3。提示一个数异或两次变回本身。比如6^5^5的 110,101,101。先得011,再得110所有又变回原来的数值,此技巧可以用来转换数值,不需要第3个变量即可两个变量值互转。
反码:二进制进行反码计算时。1变成0,0变成1。举例子~6,6的二进制是110在机器上补足32位在110之前补码0。那么反码为111.....001,此时的反码减去1得111.....111000,那么原反码减去相减的码得到0000....000111此时的十进制为-7那么加上原来减去的1得到-7+1就是~6了。(这个我也不是很懂。大牛们指正下)
左移:空缺补0,被移除的高位丢弃,空缺位补0,比如32位二进制 0000....00011左移3位变成了0...00011xxx,则xxx补足000即可。规律左移是基数乘以2的移位幂次方,比如3<<2则是322也就是3乘以2的2次幂。
右移:最高位是什么就补什么。高位是1补1,是0就补0.,规律左移是基数除以2的移位幂次方,比如3>>1则是3/2也就是3除以2的1次幂。
无符号右移:无论高位是0还是1都补0
function NumberOf(n){
if(n===0) return 0;
let count = 0;
for(let i=0; i<32 ; i++){ //右移并与1进行&运算
if((n>>>i & i)===1){
count ++;
}
}
return count;
}
http://wiki.jikexueyuan.com/project/easy-learn-algorithm/stack.html
服务器mysql安装
1、下载安装包, 并解压
/usr/local/src
2、将解压后的文件夹移动到
/usr/local/mysql-5.7.26
3、创建组和用户
4、创建mysql数据目录
5、赋予权限
6、配置参数
7、初始化mysql
8、添加权限,开启自启
9、查看初始密码并复制
root@localhost:
后边的就是密码10、启动mysql,并修改密码
回车,输入密码
11、退出,停止mysql服务