{"@attributes":{"version":"2.0"},"channel":{"title":"Nodjoy","link":"https:\/\/nodjoy.com\/","description":"Recent content on Nodjoy","generator":"Hugo -- gohugo.io","language":"zh-CN","lastBuildDate":"Fri, 25 Jul 2025 13:08:26 +0800","item":[{"title":"OCR\u8bc6\u522b\u56fe\u7247\u6587\u5b57\u5185\u5bb9","link":"https:\/\/nodjoy.com\/note\/20250725\/ocr.html","pubDate":"Fri, 25 Jul 2025 13:08:26 +0800","guid":"https:\/\/nodjoy.com\/note\/20250725\/ocr.html","description":"\u4f7f\u7528python-ddddocr\u5e93\u8bc6\u522b\u56fe\u7247\u6587\u5b57\u5185\u5bb9 \u73af\u5883\uff1a conda create -n py312 python=3.12 &amp;&amp; conda activate py312 \u4f9d\u8d56\u5b89\u88c5\uff1apip install ddddocr flask Python\u4ee3\u7801: from flask import Flask, request import ddddocr import base64 import json from PIL"},{"title":"Proxmox\u865a\u62df\u673a\u914d\u7f6eNAT\u7f51\u7edc","link":"https:\/\/nodjoy.com\/note\/20240517\/vm-nat.html","pubDate":"Fri, 17 May 2024 09:12:55 +0800","guid":"https:\/\/nodjoy.com\/note\/20240517\/vm-nat.html","description":"\u73af\u5883\u51c6\u5907 OS: Proxmox 7.4(Debian 11) \u8f6f\u4ef6: dnsmasq \u914d\u7f6e \u65b0\u5efa\u7f51\u7edc \u65b0\u5efa\u4e00\u4e2a\u7f51\u7edc,\u4f8b\u5982 vmbr2 \u7f16\u8f91\u7f51\u7edc\u914d\u7f6e \u7f16\u8f91\u7f51\u7edc\u914d\u7f6e\uff1a vi \/etc\/network\/interfaces \u672b\u5c3e\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a post-up echo 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward post-up iptables -t nat -A POSTROUTING -s &#39;192.168.100.0\/24&#39; -o vmbr0 -j MASQUERADE post-down"},{"title":"\u4f7f\u7528tcconfig\u4e3aipv6\u9650\u901f\u5b9e\u8df5","link":"https:\/\/nodjoy.com\/tech\/202403\/tc_ipv6.html","pubDate":"Wed, 06 Mar 2024 10:23:55 +0800","guid":"https:\/\/nodjoy.com\/tech\/202403\/tc_ipv6.html","description":"\u73af\u5883\u51c6\u5907 OS: Ubuntu \u8f6f\u4ef6: iperf tcconfig \u5b89\u88c5iperf\u548ctcconfig \u5728\u670d\u52a1\u7aefA \u5b89\u88c5iperf\u548ctcconfig \u5728\u5ba2\u6237\u7aefB \u5b89\u88c5iperf iperf apt install iperf tcconfig \u4e0b\u8f7dtcc"},{"title":"Proxmox\u5347\u7ea7openssh\u7248\u672c","link":"https:\/\/nodjoy.com\/tech\/20240207\/proxmox.html","pubDate":"Wed, 07 Feb 2024 13:48:06 +0800","guid":"https:\/\/nodjoy.com\/tech\/20240207\/proxmox.html","description":"openssh\u7248\u672c\u5347\u7ea7\u81f39.6p1 \u73af\u5883 OS: Proxmox7.4 (Debian11) \u8bbe\u7f6eapt\u6e90 sed -i &#39;s@deb.debian.org@mirrors.huaweicloud.com@g&#39; \/etc\/apt\/sources.list sed -i &#39;s@ftp.debian.org@mirrors.huaweicloud.com@g&#39; \/etc\/apt\/sources.list apt update \u53d6\u6d88proxmox\u5bf9\u8f6f\u4ef6\u5378\u8f7d\u7684\u9650\u5236(\u6682\u65f6\u79fb\u9664pve-apt-ho"},{"title":"Windows 10 WSL2 \u5b89\u88c5\u914d\u7f6e","link":"https:\/\/nodjoy.com\/leaf\/202308\/wsl.html","pubDate":"Thu, 24 Aug 2023 19:58:34 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202308\/wsl.html","description":"Windows 10 WSL2 \u5b89\u88c5\u914d\u7f6e \u5b89\u88c5 WSL2 \u542f\u7528\u9002\u7528\u4e8e Linux \u7684 Windows \u5b50\u7cfb\u7edf \u548c \u865a\u62df\u673a\u5e73\u53f0 \u9009\u9879 microsoft store \u641c\u7d22\u5e76\u5b89\u88c5 ubuntu22.04 \u8bbe\u7f6e\u9ed8\u8ba4\u7248\u672c\u4e3a WSL2 wsl --set-default-version 2 wsl2 \u5185\u6838\u66f4\u65b0 \u4e0b\u8f7d\u5730\u5740 Docker\u65e0\u6cd5\u542f\u52a8\u95ee\u9898\u89e3"},{"title":"Video player test(1080p)","link":"https:\/\/nodjoy.com\/part\/20230430\/video.html","pubDate":"Sun, 30 Apr 2023 21:05:40 +0800","guid":"https:\/\/nodjoy.com\/part\/20230430\/video.html","description":{}},{"title":"Video player test(4K)","link":"https:\/\/nodjoy.com\/part\/20230430\/video4k.html","pubDate":"Sun, 30 Apr 2023 21:05:30 +0800","guid":"https:\/\/nodjoy.com\/part\/20230430\/video4k.html","description":{}},{"title":"Docker\u53ef\u89c6\u5316\u7ba1\u7406\u5de5\u5177--Portainer\u7684\u914d\u7f6e\u4e0e\u4f7f\u7528","link":"https:\/\/nodjoy.com\/note\/20221226\/portainer.html","pubDate":"Mon, 26 Dec 2022 09:25:15 +0800","guid":"https:\/\/nodjoy.com\/note\/20221226\/portainer.html","description":"\u5b89\u88c5\u90e8\u7f72portainer-ce # \u521b\u5efa\u76ee\u5f55 mkdir -p app\/portainer\/portainer_data # \u4fee\u6539\u6743\u9650 chmod -R 777 app\/portainer\/portainer_data # \u8fdb\u5165\u76ee\u5f55 cd app\/portainer # \u542f\u52a8\u5bb9\u5668 docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock -v $(pwd)\/portainer_data:\/data portainer\/portainer-ce:latest \u8bbf\u95eeportaine"},{"title":"\u4f7f\u7528jspdf\u5bfc\u51fapdf \u5185\u5bb9\u88ab\u622a\u65ad\u7684\u95ee\u9898","link":"https:\/\/nodjoy.com\/note\/20221224\/jspdf.html","pubDate":"Sat, 24 Dec 2022 17:53:34 +0800","guid":"https:\/\/nodjoy.com\/note\/20221224\/jspdf.html","description":"\u95ee\u9898 \u5206\u9875\u65f6\u5185\u5bb9\u88ab\u622a\u65ad \u89e3\u51b3 \u73af\u5883 vue2 \u4f9d\u8d56\u5305\uff1ajspdf html2canvas jspdf-autotable \u7b2c\u4e00\u79cd\u89e3\u51b3\u65b9\u6848&mdash;\u4f7f\u7528jspdf-autotable \u9002\u7528\u4e8e\u5185\u5bb9\u4e3a\u8868\u683c\u7684\u60c5\u51b5 js"},{"title":"deb\u5305\u7684\u6253\u5305\u6d41\u7a0b","link":"https:\/\/nodjoy.com\/note\/202208\/make-deb.html","pubDate":"Thu, 11 Aug 2022 21:23:57 +0800","guid":"https:\/\/nodjoy.com\/note\/202208\/make-deb.html","description":"deb\u5305\u7684\u6253\u5305\u6d41\u7a0b \u4ee5\u6253\u5305\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e3a\u4f8b \u521b\u5efa\u76ee\u5f55 mkdir make-deb cd make-deb mkdir -p opt\/mydeb\/bin \u5c06\u51c6\u5907\u597d\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u653e\u5165opt\/mydeb\/bin\u76ee\u5f55 \u521b\u5efaDEBIAN\u76ee\u5f55 mkdir DEBIAN \u521b"},{"title":"Ubuntu\/Debian\u73af\u5883\u4e0b\u4f7f\u6d4f\u89c8\u5668\u4fe1\u4efb\u81ea\u7b7e\u540d\u8bc1\u4e66","link":"https:\/\/nodjoy.com\/note\/202208\/ssl.html","pubDate":"Thu, 11 Aug 2022 20:49:55 +0800","guid":"https:\/\/nodjoy.com\/note\/202208\/ssl.html","description":"\u51c6\u5907\u5de5\u4f5c \u73af\u5883 OS: Ubuntu\/Debian \u8f6f\u4ef6: openssl libnss3-tools certutil \u6d4f\u89c8\u5668: Chrome Edge 360\u5b89\u5168\u6d4f\u89c8\u5668 \u751f\u6210\u81ea\u7b7e\u540d\u8bc1\u4e66 1.\u4f7f\u7528\u5ed6\u96ea\u5cf0\u7684\u811a\u672c 2.\u53c2\u8003\u8fd9\u7bc7\u6587\u7ae0\u4e2d\u7684\u811a\u672c \u8bc1\u4e66\u5bfc\u5165 1.\u5b89\u88c5certu"},{"title":"Golang\u4e0ePHP\u7684AES\u52a0\u5bc6\u89e3\u5bc6\u4e92\u8f6c","link":"https:\/\/nodjoy.com\/share\/202208\/aes-lib.html","pubDate":"Thu, 11 Aug 2022 20:09:34 +0800","guid":"https:\/\/nodjoy.com\/share\/202208\/aes-lib.html","description":"Golang\u4e0ePHP\u7684AES\u52a0\u5bc6\u89e3\u5bc6\u4e92\u8f6c \u4f7f\u7528Github\u4e0a\u7684mervick\/aes-everywhere\u52a0\u5bc6\u5e93 mervick\/aes-eve"},{"title":"PHP\u83b7\u53d6mp4\u548cm3u8\u89c6\u9891\u65f6\u957f\u7684\u65b9\u6cd5","link":"https:\/\/nodjoy.com\/note\/202207\/duration.html","pubDate":"Sun, 17 Jul 2022 19:38:37 +0800","guid":"https:\/\/nodjoy.com\/note\/202207\/duration.html","description":"PHP\u83b7\u53d6mp4\u89c6\u9891\u65f6\u957f \u4f7f\u7528getid3\u83b7\u53d6mp4\u89c6\u9891\u65f6\u957f(\u540c\u6837\u9002\u7528\u4e8emp3\u7b49\u5176\u4ed6\u5a92\u4f53\u6587\u4ef6) $getid3 = new getID3; $file = &#39;.\/test.mp4&#39;; $info = $getid3-&gt;analyze($file); $playtime_seconds = $info[&#39;playtime_seconds&#39;]; $duration = gmdate(&#34;H:i:s&#34;, $playtime_seconds); \/\/\u5c06\u79d2\u6362\u7b97\u4e3a"},{"title":"Harbor\u7684\u5b89\u88c5\u914d\u7f6e\u4e0e\u4f7f\u7528","link":"https:\/\/nodjoy.com\/leaf\/202207\/harbor.html","pubDate":"Thu, 07 Jul 2022 17:03:45 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202207\/harbor.html","description":"\u51c6\u5907\u5de5\u4f5c \u73af\u5883 OS: CentOS 7.6 \u5b89\u88c5\u6240\u9700\u8f6f\u4ef6 Docker Docker-Compose \u5176\u5b83 \u57df\u540d https\u8bc1\u4e66 \u5b89\u88c5Harbor \u4e0b\u8f7d\u5b89\u88c5\u5305 \u89e3\u538b\u5b89\u88c5\u5305\u5e76\u8fdb\u5165\u5b89\u88c5\u76ee\u5f55 tar -zxvf harbor-offline-installer-v2.5.2.tgz cd harbor \u7f16\u8f91harbor.yam"},{"title":"\u4f7f\u7528docker-compose\u4e00\u952e\u90e8\u7f72nodejs\u9879\u76ee","link":"https:\/\/nodjoy.com\/leaf\/202206\/nodejs-docker.html","pubDate":"Tue, 14 Jun 2022 16:51:33 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202206\/nodejs-docker.html","description":"\u73af\u5883 OS: Ubuntu \u8f6f\u4ef6: docker\u3001docker-compose \u76ee\u5f55\u7ed3\u6784 docker-compose.yml\u6587\u4ef6 version: &#34;2&#34; services: mysql: image: mysql:8.0.19 container_name: mysql restart: always volumes: - .\/data\/mysql:\/var\/lib\/mysql # mysq"},{"title":"\u4f7f\u7528docker-compose\u4e00\u952e\u642d\u5efaLNMP\u73af\u5883","link":"https:\/\/nodjoy.com\/leaf\/202205\/lnmp-docker.html","pubDate":"Sat, 21 May 2022 20:56:46 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202205\/lnmp-docker.html","description":"\u73af\u5883 OS: Ubuntu \u8f6f\u4ef6: docker\u3001docker-compose \u76ee\u5f55\u7ed3\u6784 \u6211\u7684\u76ee\u5f55\u7ed3\u6784 \u521b\u5efadocker-compose.yml\u6587\u4ef6 version: &#34;2&#34; services: php-fpm: image: phpdockerio\/php74-fpm container_name: php74 working_dir: \/application"},{"title":"rpmrebuild\u91cd\u65b0\u6253\u5305","link":"https:\/\/nodjoy.com\/note\/20220324\/rpmrebuild.html","pubDate":"Thu, 24 Mar 2022 21:06:46 +0800","guid":"https:\/\/nodjoy.com\/note\/20220324\/rpmrebuild.html","description":"rpmrebuild\u7684\u4f7f\u7528 \u5b89\u88c5rpmrebuild yum install rpmrebuild \u5236\u4f5crpm\u5305\u8fc7\u7a0b\u8f83\u4e3a\u9ebb\u70e6\uff0c\u6b64\u5904\u4f7f\u7528rpmrebuild\u53bb\u5c06\u672c\u673a\u5df2\u5b89\u88c5\u597d\u7684nginx\u5305"},{"title":"\u4f7f\u7528rpmbuild\u5236\u4f5crpm\u5305","link":"https:\/\/nodjoy.com\/note\/20220322\/make-rpm.html","pubDate":"Thu, 24 Mar 2022 19:48:46 +0800","guid":"https:\/\/nodjoy.com\/note\/20220322\/make-rpm.html","description":"rpmbuild \u5b89\u88c5rpmbuild yum install rpm-build \u751f\u6210rpmbuild\u76ee\u5f55\u7ed3\u6784 \u4f7f\u7528\u975eroot\u8d26\u6237 rpmbuild -ba nginx.spec \/\/\u4f1a\u62a5\u9519\uff0c\u6ca1\u6709\u6587\u4ef6\u6216\u76ee\u5f55 \u6b64\u65f6\u4f1a\u751f\u6210rpmbuild\u5de5\u4f5c\u76ee\u5f55"},{"title":"Ubuntu\u642d\u5efaLNMP\u73af\u5883","link":"https:\/\/nodjoy.com\/leaf\/20211110\/lnmp.html","pubDate":"Wed, 10 Nov 2021 16:59:27 +0800","guid":"https:\/\/nodjoy.com\/leaf\/20211110\/lnmp.html","description":"\u5b89\u88c5Nginx sudo apt install nginx \u5b89\u88c5MySQL sudo apt install mysql-server-5.7 \u6dfb\u52a0php\u6e90 sudo add-apt-repository ppa:ondrej\/php sudo apt update \u4e5f\u53ef\u4ee5\u4f7f\u7528ppa\u56fd\u5185\u6e90 deb https:\/\/launchpad.proxy.ustclug.org\/ondrej\/php\/ubuntu focal main \u5b89\u88c5PHP sudo apt install php7.4 sudo apt install php7.4-fpm \u5b89\u88c5PHP\u6269\u5c55 sudo"},{"title":"\u8bb0\u4e00\u6b21Docker mysql\u5bb9\u5668\u5728windows\u865a\u62df\u673a\u65e0\u6cd5\u542f\u52a8\u95ee\u9898","link":"https:\/\/nodjoy.com\/leaf\/202109\/docker_err.html","pubDate":"Sat, 11 Sep 2021 00:22:13 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202109\/docker_err.html","description":"\u73af\u5883 \u4f7f\u7528\u7684\u73af\u5883\u662fWindows10+homestead(VirtualBox) \u542f\u52a8\u8fc7\u7a0b \u8fd0\u884csudo docker-compose up -d \u5bb9\u5668\u53ef\u4ee5\u6b63\u5e38\u542f\u52a8 \u8fd0\u884csudo docker exec -it db-mysql"},{"title":"Homestead\u73af\u5883\u642d\u5efa","link":"https:\/\/nodjoy.com\/note\/202105\/installhd.html","pubDate":"Tue, 18 May 2021 15:20:48 +0800","guid":"https:\/\/nodjoy.com\/note\/202105\/installhd.html","description":"\u51c6\u5907\u5de5\u4f5c \u73af\u5883 OS: Windows 10 \u5b89\u88c5\u6240\u9700\u8f6f\u4ef6 Git Vagrant VitrualBox xshell Navicat \u751f\u6210SSH Key \u5728\u7528\u6237\u5bb6\u76ee\u5f55\u8fd0\u884c\uff1a cd ~ ssh-keygen -t rsa -C &#34;youemail@homestead.com&#34; \u6b64\u65f6\uff0c\u4f1a\u751f\u6210\u4ee5\u4e0b\u7684\u6587\u4ef6 \u5b89\u88c5Homestead (\u8fd8\u53ef\u4ee5\u76f4\u63a5"},{"title":"Ubuntu-\u5b89\u88c5PHP\u542f\u52a8\u62a5\u9519php: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory\u89e3\u51b3\u529e\u6cd5","link":"https:\/\/nodjoy.com\/note\/202105\/phperror.html","pubDate":"Sat, 08 May 2021 10:36:36 +0800","guid":"https:\/\/nodjoy.com\/note\/202105\/phperror.html","description":"Ubuntu-\u4f7f\u7528\u5b9d\u5854\u9762\u677f\u5b89\u88c5PHP\u540e\u542f\u52a8\u62a5\u9519\uff1aphp: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory \u89e3\u51b3\u529e\u6cd5 \u524d\u5f80http:\/\/security.ubun"},{"title":"Ubuntu-Docker\u7684\u5b89\u88c5\u4e0e\u4f7f\u7528","link":"https:\/\/nodjoy.com\/note\/202104\/docker.html","pubDate":"Thu, 29 Apr 2021 12:34:31 +0800","guid":"https:\/\/nodjoy.com\/note\/202104\/docker.html","description":"\u73af\u5883\u914d\u7f6e \u5220\u9664\u65e7\u7248\u672c sudo apt-get remove docker docker-engine docker.io containerd runc \u66f4\u65b0apt\u5305\u7d22\u5f15 sudo apt-get update \u5b89\u88c5\u5305\u4ee5\u5141\u8bb8apt\u901a\u8fc7HTTPS\u4f7f\u7528\u5b58\u50a8\u5e93 sudo apt-get install apt-transport-https sudo apt-get install ca-certificates sudo apt-get install curl sudo apt-get install gnupg-agent sudo apt-get install software-properties-common \u6dfb"},{"title":"Js\u6570\u7ec4\u64cd\u4f5c","link":"https:\/\/nodjoy.com\/note\/202104\/javascript.html","pubDate":"Thu, 08 Apr 2021 14:28:34 +0800","guid":"https:\/\/nodjoy.com\/note\/202104\/javascript.html","description":"\u7c7b\u578b\u8f6c\u6362 \u5b57\u7b26\u4e32 \u5927\u90e8\u5206\u6570\u636e\u7c7b\u578b\u90fd\u53ef\u4ee5\u4f7f\u7528toString()\u51fd\u6570\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32 console.log(([1,2,3]).toString()); \/\/1,2,3 \u4e5f\u53ef\u4ee5\u4f7f\u7528\u51fd\u6570String\u8f6c\u6362\u4e3a\u5b57\u7b26\u4e32 console.log(String([1,2,3])); \u6216\u8005\u4f7f\u7528join\u8fde\u63a5\u4e3a"},{"title":"Node-Koa2\u4e4baxios\u8bf7\u6c42\u4e91\u4e4b\u8baf\u77ed\u4fe1\u53d1\u9001\u63a5\u53e3\u548csoap\u8bf7\u6c42WebService","link":"https:\/\/nodjoy.com\/leaf\/202103\/axios-soap.html","pubDate":"Wed, 10 Mar 2021 11:24:18 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202103\/axios-soap.html","description":"axios\u8bf7\u6c42\u4e91\u4e4b\u8baf\u77ed\u4fe1\u63a5\u53e3\u5b9e\u73b0\u77ed\u4fe1\u53d1\u9001 \u5b89\u88c5axios npm install axios --save \u65b9\u6cd5\u5b9e\u73b0 static async sendMessage(ctx){ let param = Math.random().toString().substr(2, 4); \/\/\u751f\u6210\u56db\u4f4d\u968f\u673a\u6570 let phone = &#39;157********&#39;; const url = &#39;https:\/\/open.ucpaas.com\/ol\/sms\/sendsms&#39;; const axios = require(&#39;axios&#39;); let sendRe = await axios({ method:"},{"title":"\u57fa\u4e8eKoa\u6846\u67b6\u7684Lincms\u5e38\u7528\u64cd\u4f5c","link":"https:\/\/nodjoy.com\/note\/202103\/lincms.html","pubDate":"Wed, 03 Mar 2021 14:00:49 +0800","guid":"https:\/\/nodjoy.com\/note\/202103\/lincms.html","description":"Sequelize\u4e8b\u52a1\u64cd\u4f5c let transaction; \/\/\u4e8b\u52a1\u5f00\u59cb try { transaction = await sequelize.transaction(); const replace_record = { p_code: v.get(&#39;path.p_code&#39;), p_type: v.get(&#39;path.p_type&#39;) }; const { id: record_id } = await ReplaceRecordModel.create(replace_record, { transaction }); await WxReplacesheetsModel.create( { record_id, name: v.get(&#39;path.name&#39;), phone: v.get(&#39;path.phone&#39;), province: v.get(&#39;path.province&#39;), city: v.get(&#39;path.city&#39;), district: v.get(&#39;path.district&#39;), question: v.get(&#39;path.question&#39;), status: 1 }, { transaction } );"},{"title":"Linux\u5f00\u542fbbr\u52a0\u901f","link":"https:\/\/nodjoy.com\/leaf\/202102\/bbr.html","pubDate":"Tue, 09 Feb 2021 13:09:10 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202102\/bbr.html","description":"\u5b89\u88c5bbr\u52a0\u901f \u8fdb\u5165\/usr\/local\/src\u76ee\u5f55\uff0c\u4e0b\u8f7dbbr.sh\u6587\u4ef6 cd \/usr\/local\/src sudo wget --no-check-certificate https:\/\/github.com\/teddysun\/across\/raw\/master\/bbr.sh \u6dfb\u52a0\u53ef\u6267\u884c\u6743\u9650 sudo chmod +x bbr.sh \u6267\u884c\u8be5\u811a\u672c\u6587\u4ef6,\u5b89\u88c5\u5b8c\u6210\u540e\u63d0\u793a\u6309y"},{"title":"PHP&kuaidi.com\u5b9e\u73b0\u5feb\u9012\u67e5\u8be2","link":"https:\/\/nodjoy.com\/leaf\/202101\/kuaidiapi.html","pubDate":"Tue, 26 Jan 2021 16:14:21 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202101\/kuaidiapi.html","description":"\u7533\u8bf7\u5feb\u9012\u67e5\u8be2API\u6388\u6743key kuaidi.com SDK\u6587\u4ef6KDApi.php \/** * \u7269\u6d41\u4fe1\u606f\u67e5\u8be2\u63a5\u53e3SDK *\/ class KDAPI{ private $_APPKEY = &#39;twde5d8ef***********&#39;; \/\/\u6539\u4e3a\u60a8\u81ea\u5df1\u7684key private $_APIURL = &#34;https:\/\/highapi.kuaidi.com\/openapi-querycountordernumber.html?&#34;; private $_show = 0; private $_muti"},{"title":"Linux-\u4f7f\u7528\u9632\u706b\u5899firewalld\u5f00\u653e\u7aef\u53e3","link":"https:\/\/nodjoy.com\/leaf\/20210122\/linux-firewalld.html","pubDate":"Fri, 22 Jan 2021 14:58:14 +0800","guid":"https:\/\/nodjoy.com\/leaf\/20210122\/linux-firewalld.html","description":"\u67e5\u770b\u5f53\u524d\u5f00\u4e86\u54ea\u4e9b\u7aef\u53e3\u5176\u5b9e\u4e00\u4e2a\u670d\u52a1\u5bf9\u5e94\u4e00\u4e2a\u7aef\u53e3\uff0c\u6bcf\u4e2a\u670d\u52a1\u5bf9\u5e94\/usr\/lib\/firewalld\/services\u4e0b\u9762\u4e00\u4e2axml\u6587\u4ef6 firewall-cmd --list-services \u901a\u8fc7f"},{"title":"\u4f7f\u7528Linux\u5b9a\u65f6\u4efb\u52a1-Crontab \u5b8c\u6210MySQL\u6570\u636e\u5e93\u7684\u5907\u4efd\u548c\u8868\u64cd\u4f5c","link":"https:\/\/nodjoy.com\/leaf\/202101\/crontab_linux.html","pubDate":"Tue, 19 Jan 2021 17:39:31 +0800","guid":"https:\/\/nodjoy.com\/leaf\/202101\/crontab_linux.html","description":"crontab\u57fa\u672c\u547d\u4ee4 crontab -l \/\/\u67e5\u770b\u5b9a\u65f6\u4efb\u52a1 crontab -e \/\/\u7f16\u8f91\u5b9a\u65f6\u4efb\u52a1 crontab -r \/\/\u5220\u9664\u5b9a\u65f6\u4efb\u52a1 crontab\u5e38\u7528\u5199\u6cd5 \u6bcf\u5206\u949f\u6267\u884c *\/1 * * * * command \u6bcf\u5c0f\u65f60\u5206\u6267\u884c"},{"title":"SEO\u641c\u7d22\u5f15\u64ce\u4f18\u5316-\u5e38\u7528\u7684\u7ad9\u957f\u5e73\u53f0\u603b\u7ed3","link":"https:\/\/nodjoy.com\/share\/202101\/zhanzhangurl\/","pubDate":"Fri, 15 Jan 2021 13:24:58 +0800","guid":"https:\/\/nodjoy.com\/share\/202101\/zhanzhangurl\/","description":"\u767e\u5ea6: https:\/\/ziyuan.baidu.com \u8c37\u6b4c: https:\/\/analytics.google.com \u817e\u8baf: https:\/\/mta.qq.com \u641c\u72d7: http:\/\/zhanzhang.sogou.com 360: http:\/\/zhanzhang.so.com \u5fc5\u5e94: https:\/\/www.bing.com\/webmasters\/homepage \u5934\u6761: https:\/\/zhanzhang.toutiao.com \u795e\u9a6c: https:\/\/zhanzhang.sm.cn"},{"title":"PHP-\u5fae\u4fe1\u516c\u4f17\u53f7\u5b9e\u73b0\u53d1\u9001\u6a21\u677f\u6d88\u606f","link":"https:\/\/nodjoy.com\/leaf\/2020\/12\/15\/wechat01\/","pubDate":"Tue, 15 Dec 2020 11:19:55 +0800","guid":"https:\/\/nodjoy.com\/leaf\/2020\/12\/15\/wechat01\/","description":"PHP\u5fae\u4fe1\u516c\u4f17\u53f7\u5b9e\u73b0\u53d1\u9001\u6a21\u677f\u6d88\u606f $appid = &#34;wxb7729*******&#34;; $appsecret = &#34;8b99**************&#34;; $url = &#34;https:\/\/api.weixin.qq.com\/cgi-bin\/token?grant_type=client_credential&amp;appid=$appid&amp;secret=$appsecret&#34;; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $jsoninfo = json_decode($output, true); $ACCESS_TOKEN = $jsoninfo[&#34;access_token&#34;]; $data=array( &#39;touser&#39;=&gt;&#34;oaIgKt*********&#34;, \/\/\u8981\u53d1\u9001\u7ed9\u7528\u6237\u7684openid &#"},{"title":"Koa\u6846\u67b6\u5b9e\u73b0\u5bfc\u51faExcel\u6587\u4ef6","link":"https:\/\/nodjoy.com\/note\/2020\/12\/11\/koa_import\/","pubDate":"Fri, 11 Dec 2020 17:29:57 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/12\/11\/koa_import\/","description":"\u5b89\u88c5\u5f15\u5165excel-export\u5305 npm install excel-export --save const nodeExcel = require(&#39;excel-export&#39;); \u5b9e\u73b0\u5bfc\u51fa\u65b9\u6cd5 \/** * \u6570\u636e\u5bfc\u51fa--\u5bfc\u51fa\u65b9\u6cd5 * @param resultData [{},{},] \/\/\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6\u7684\u6570\u636e\u683c\u5f0f *\/ static async exportData(resultData,ctx){ let conf ={}; conf.name ="},{"title":"php\u5b89\u88c5Oracle\u6269\u5c55oci8","link":"https:\/\/nodjoy.com\/leaf\/2020\/10\/26\/php_oci8\/","pubDate":"Mon, 26 Oct 2020 10:30:00 +0800","guid":"https:\/\/nodjoy.com\/leaf\/2020\/10\/26\/php_oci8\/","description":"\u5b89\u88c5oracle-instantclient \u4e0b\u8f7d\u5730\u5740 \u5206\u522b\u4e0b\u8f7d oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm \u8fd0\u884c rpm -ivh oracle-instantclient11.2-* \u6b64\u65f6\u4f1a\u751f\u6210\/usr\/lib\/oracle\/11\/2\/client6"},{"title":"Laravel Api\u5f00\u53d1\u4e4bDingo&Jwt\u7684\u4f7f\u7528","link":"https:\/\/nodjoy.com\/note\/2020\/09\/22\/laravel_dingo\/","pubDate":"Tue, 22 Sep 2020 15:02:17 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/09\/22\/laravel_dingo\/","description":"Dingo \u5b89\u88c5\u7ec4\u4ef6 composer require dingo\/api:2.x \u751f\u6210\u914d\u7f6e\u6587\u4ef6 php artisan vendor:publish \u6267\u884c\u547d\u4ee4\u540e\u4f1a\u751f\u6210config\/api.php\u914d\u7f6e\u6587\u4ef6 config\/api.php \u914d\u7f6e\u8bf4\u660e #\u63a5\u53e3\u56f4\u7ed5\uff1a[x]\u672c\u5730\u548c\u79c1\u6709\u73af\u5883 [prs]\u516c"},{"title":"Larvel-\u4f7f\u7528Seeder\u751f\u6210\u6d4b\u8bd5\u6570\u636e","link":"https:\/\/nodjoy.com\/note\/2020\/08\/24\/laravel05\/","pubDate":"Mon, 24 Aug 2020 15:38:00 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/24\/laravel05\/","description":"\u751f\u6210Seeder\u6587\u4ef6 php artisan make:seeder UserSeeder \u8fd0\u884c\u540e\u4f1a\u5728database\/seeds\u76ee\u5f55\u4e0b\u751f\u6210UserSeeder.php \u6587\u4ef6 \u7f16\u8f91UserSeeder.php"},{"title":"Sequelize\u64cd\u4f5cMySQL\u6570\u636e\u5e93","link":"https:\/\/nodjoy.com\/note\/2020\/08\/20\/sequelize01\/","pubDate":"Thu, 20 Aug 2020 14:00:54 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/20\/sequelize01\/","description":"\u5b89\u88c5sequelize\u3001sequelize-cli\u548cmysql2 npm install sequelize-cli -g npm install sequelize --save npm install mysql2 --save \u521d\u59cb\u5316\u9879\u76ee sequelize init \u5728config.js\u4e2d\u914d\u7f6e\u8fde\u63a5\u6570\u636e\u5e93\u53c2"},{"title":"Koa\u4f7f\u7528require-directory\u5b9e\u73b0\u8def\u7531\u7684\u81ea\u52a8\u52a0\u8f7d","link":"https:\/\/nodjoy.com\/note\/2020\/08\/13\/koa07\/","pubDate":"Thu, 13 Aug 2020 14:10:35 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/13\/koa07\/","description":"require-directory\u7684\u5b89\u88c5\u4e0e\u4f7f\u7528 const Koa = require(&#39;koa&#39;); const app = new Koa(); const requireDirectory = require(&#39;require-directory&#39;); const Router = require(&#39;koa-router&#39;); const modules = requireDirectory(module,&#39;.\/api&#39;,{ visit:whenLoadModule }) function whenLoadModule(obj){ if(obj instanceof Router){ app.use(obj.routes()) } } app.listen(3000); \u8def\u7531\u6587\u4ef6\u7684\u5199\u6cd5api\/v1\/b"},{"title":"\u4f7f\u7528Koa\u5e94\u7528\u751f\u6210\u5668\u5feb\u901f\u751f\u6210koa\u5e94\u7528","link":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa06\/","pubDate":"Mon, 10 Aug 2020 16:48:12 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa06\/","description":"\u5168\u5c40\u5b89\u88c5koa\u811a\u624b\u67b6\u751f\u6210\u5de5\u5177 npm install koa-generator -g \u521b\u5efa\u9879\u76ee koa koa_demo \u5b89\u88c5\u4f9d\u8d56 cd koa_demo npm install \u542f\u52a8\u9879\u76ee npm start"},{"title":"Koa Cookie\u4e0eSession","link":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa05\/","pubDate":"Mon, 10 Aug 2020 14:52:11 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa05\/","description":"Cookie Koa\u4e2d\u8bbe\u7f6eCookie\u503c ctx.cookies.set(name,value,[options]); Koa\u4e2d\u83b7\u53d6Cookie\u503c ctx.cookies.get(&#39;name&#39;); Koa\u4e2d\u4f7f\u7528Buffer\u8bbe\u7f6e\u4e2d\u6587Cookie \/\/\u8bbe\u7f6e\u4e2d\u6587Cookie router.get(&#39;\/&#39;,async (ctx)=&gt;{ var userinfo=new Buf"},{"title":"Koa post\u63d0\u4ea4\u6570\u636e\u4e0e\u9759\u6001\u8d44\u6e90\u4e2d\u95f4\u4ef6","link":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa04\/","pubDate":"Mon, 10 Aug 2020 12:03:41 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/10\/koa04\/","description":"\u539f\u751fNode.js\u83b7\u53d6post\u63d0\u4ea4\u7684\u6570\u636e \u8868\u5355 &lt;form action=&#34;\/doAdd&#34; method=&#34;post&#34;&gt; \u7528\u6237\u540d: &lt;input type=&#34;text&#34; name=&#34;username&#34;\/&gt; &lt;br\/&gt; &lt;br\/&gt; \u5bc6 \u7801: &lt;input type=&#34;password&#34; name=&#34;password&#34;\/&gt; &lt;br\/&gt; &lt;br\/&gt; &lt;button type=&#34;submit&#34;&gt;\u63d0\u4ea4"},{"title":"Koa\u8def\u7531\u548c\u4e2d\u95f4\u4ef6","link":"https:\/\/nodjoy.com\/note\/2020\/08\/09\/koa02\/","pubDate":"Sun, 09 Aug 2020 11:01:49 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/09\/koa02\/","description":"Koa\u8def\u7531\u7684\u5b89\u88c5\u548c\u914d\u7f6e \u5b89\u88c5Koa\u8def\u7531 npm install koa-router --save Koa\u8def\u7531\u7684\u4f7f\u7528 var Koa = require(&#39;koa&#39;); \/\/\u5f15\u5165Koa var Router = require(&#39;koa-router&#39;); \/\/\u5f15\u5165\u8def\u7531 var app = new Koa(); var router = new Router(); \/\/\u914d\u7f6e\u8def\u7531 router.get(&#39;\/&#39;,async function(ctx){ \/\/ctx"},{"title":"Koa\u6846\u67b6\u5b89\u88c5\u53caES6\u57fa\u7840\u8bed\u6cd5","link":"https:\/\/nodjoy.com\/note\/2020\/08\/09\/koa01\/","pubDate":"Sun, 09 Aug 2020 08:59:12 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/09\/koa01\/","description":"\u5b89\u88c5Koa\u6846\u67b6 \u521d\u59cb\u5316 npm init --yes \u5b89\u88c5Koa npm install koa --save \u7b2c\u4e00\u4e2aKoa\u7a0b\u5e8fapp.js var Koa = require(&#39;koa&#39;); \/\/\u5f15\u5165Koa var app = new Koa(); \/\/\u5b9e\u4f8b\u5316 \/\/\u4e2d\u95f4\u4ef6 app.use(async(ctx)=&gt;{ ctx.body=&#39;Hello Koa&#39;; }); app.listen(3000); ES6"},{"title":"Git \u7248 \u672c \u63a7 \u5236","link":"https:\/\/nodjoy.com\/leaf\/2020\/08\/07\/gitcommand\/","pubDate":"Fri, 07 Aug 2020 11:44:45 +0800","guid":"https:\/\/nodjoy.com\/leaf\/2020\/08\/07\/gitcommand\/","description":"Git\u57fa\u672c\u547d\u4ee4 git config -l \u67e5\u770b\u914d\u7f6e git config -global user.name &ldquo;username&rdquo; \u5168\u5c40\u8bbe\u7f6e\u7528\u6237\u540d git config -global user.email &ldquo;email&rdquo; \u5168\u5c40\u8bbe\u7f6e\u7528\u6237\u90ae\u7bb1 git init \u521d\u59cb\u5316\u7248\u672c\u5e93 git add a.php \u6dfb\u52a0\u6587\u4ef6\u5230\u7248\u672c\u5e93 git add . \u6dfb\u52a0\u6240\u6709\u6587\u4ef6\u5230\u7248\u672c"},{"title":"\u4f7f\u7528Laravel\u90ae\u4ef6\u53d1\u9001\u5b9e\u73b0\u7528\u6237\u7684\u9a8c\u8bc1&\u6ce8\u518c\u4e1a\u52a1","link":"https:\/\/nodjoy.com\/note\/2020\/08\/04\/laravel09\/","pubDate":"Tue, 04 Aug 2020 17:21:13 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/08\/04\/laravel09\/","description":"\u6ce8\u518c\u6570\u636e\u5904\u7406\u65b9\u6cd5\u4e2d\u6dfb\u52a0token\u5e76\u89e6\u53d1\u90ae\u4ef6\u53d1\u9001 \/\/\u7528\u6237\u6ce8\u518c\u6570\u636e\u5904\u7406 public function store(Request $request) { $data = $this-&gt;validate($request,[ &#39;name&#39; =&gt; &#39;required|min:4&#39;, &#39;email&#39; =&gt; &#39;required|email|unique:users&#39;, &#39;password&#39; =&gt; &#39;required|min:6|confirmed&#39;, ]); $data[&#39;password&#39;] = bcrypt($data[&#39;password&#39;]); $data[&#39;email_token&#39;] = Str::random(10); $user = User::create($data); \/\/\u53d1\u9001\u6ce8\u518c\u90ae\u4ef6 \\Mail::to($user)-&gt;send(new RegMail($user));"},{"title":"Laravel Api\u5f00\u53d1\u4e4blaravel\/passport\u6388\u6743\u5305\u7684\u4f7f\u7528\u53ca\u57fa\u672c\u914d\u7f6e","link":"https:\/\/nodjoy.com\/note\/2020\/07\/31\/laravel06\/","pubDate":"Fri, 31 Jul 2020 17:18:54 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/31\/laravel06\/","description":"\u5b89\u88c5laravel\/passport composer require laravel\/passport=~7.0 \u6307\u5b9a\u4e3a7.0\u7248\u672c\uff0claravel5.8\u4e0d\u652f\u63018.0\u53ca\u4ee5\u4e0a\u7248\u672c \u521b\u5efa\u6240\u9700\u7684\u8868 php artisan migrate \u751f\u6210secret php artisan"},{"title":"MongoDB \u5b89\u88c5\u914d\u7f6e","link":"https:\/\/nodjoy.com\/note\/2020\/07\/30\/mongodb01\/","pubDate":"Thu, 30 Jul 2020 16:57:57 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/30\/mongodb01\/","description":"\u5b89\u88c5\u914d\u7f6e\uff08with WAMP\uff09 \u4e0b\u8f7dMongoDB\uff0c\u5e76\u5c06\u5b89\u88c5\u5305\u79fb\u52a8\u5230wamp\u73af\u5883\u76ee\u5f55\u4e0b \u5728mongodb\u76ee\u5f55\u65b0\u5efalog.txt\u6587\u4ef6\u548cdat\u6587\u4ef6\u76ee\u5f55"},{"title":"Laravel\u57fa\u784004-\u89c6\u56fe","link":"https:\/\/nodjoy.com\/note\/2020\/07\/23\/laravel04\/","pubDate":"Thu, 23 Jul 2020 10:35:48 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/23\/laravel04\/","description":"Blade\u6a21\u677f\u5f15\u64ce\u7684\u6a21\u677f\u7ee7\u627f\u6784\u5efa\u540e\u53f0\u754c\u9762 \u540e\u53f0\u89c6\u56fe\u6587\u4ef6\u76ee\u5f55 -\/resources\/views\/admin\/layout \u4e3a\u7236\u7ea7\u6a21\u677f\u76ee\u5f55 \u4f7f\u7528@yield\u5360\u4f4d\u5b9a\u4e49\u6d3b\u52a8\u7684\u9875\u9762\u8303\u56f4 &lt;div&gt; @yield(&#39;content&#39;) &lt;\/div&gt; \u5b50\u9875\u9762\u7ee7\u627f\u7236\u7ea7\u6a21\u677f @extends(&#39;admin.layout.master&#39;) @section(&#39;content&#39;) &lt;div"},{"title":"Laravel\u57fa\u784003-\u4e2d\u95f4\u4ef6\u7684\u4f7f\u7528","link":"https:\/\/nodjoy.com\/note\/2020\/07\/22\/laravel03\/","pubDate":"Wed, 22 Jul 2020 17:06:05 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/22\/laravel03\/","description":"\u4f7f\u7528\u4e2d\u95f4\u4ef6\u8fdb\u884c\u540e\u53f0\u6743\u9650\u9a8c\u8bc1 \u521b\u5efa\u4e2d\u95f4\u4ef6 php artisan make:middleware AdminMiddleware \u6267\u884c\u540e\u4f1a\u5728app\/Http\/Middleware\u76ee\u5f55\u4e0b\u751f\u6210AdminMiddleware.php"},{"title":"Laravel\u57fa\u784002-\u540e\u53f0\u767b\u5f55\u9a8c\u8bc1","link":"https:\/\/nodjoy.com\/note\/2020\/07\/21\/laravel02\/","pubDate":"Tue, 21 Jul 2020 13:29:04 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/21\/laravel02\/","description":"\u521b\u5efa\u540e\u53f0\u63a7\u5236\u5668 php artisan make:controller Admin\/EntryController \u914d\u7f6e\u8def\u7531 Route::get(&#39;\/login&#39;,&#39;Admin\\EntryController@loginForm&#39;); \u6216\u8005\u91c7\u7528\u914d\u7f6e\u547d\u540d\u7a7a\u95f4\u7684\u65b9\u5f0f\u6307\u5b9a\u5230Admin\u76ee\u5f55\uff0c\u7b80\u5316\u4e00\u4e9b\u91cd\u590d\u4ee3\u7801 Route::group([&#39;prefix&#39; =&gt; &#39;admin&#39;,&#39;namespace&#39; =&gt; &#39;Admin&#39;],function(){ Route::get(&#39;\/login&#39;,&#39;EntryController@loginForm&#39;); }); \u4f7f\u7528Auth\u767b\u5f55\u9a8c\u8bc1 \u7f16\u8f91con"},{"title":"Laravel\u57fa\u784001-\u5b89\u88c5\u914d\u7f6e","link":"https:\/\/nodjoy.com\/note\/2020\/07\/16\/laravel01\/","pubDate":"Thu, 16 Jul 2020 10:30:47 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/16\/laravel01\/","description":"\u5b89\u88c5 composer\u5b89\u88c5 composer\u547d\u4ee4\uff1a composer create-project --prefer-dist laravel\/laravel hd Laravel\u76ee\u5f55\uff1a \u5b89\u88c5\u63d0\u793a\u5de5\u5177 \u524d\u5f80PHP\u5e94\u7528\u5546\u5e97packagist.org\u4e0b\u8f7d\u5b89\u88c5"},{"title":"Hugo\u57fa\u672c\u547d\u4ee4","link":"https:\/\/nodjoy.com\/note\/2020\/07\/10\/hugocommand.html","pubDate":"Fri, 10 Jul 2020 14:52:58 +0800","guid":"https:\/\/nodjoy.com\/note\/2020\/07\/10\/hugocommand.html","description":"Hugo\u57fa\u672c\u547d\u4ee4 hugo server --noHTTPCache #\u542f\u52a8 hugo server --disableFastRender #FastRender\u542f\u52a8 hugo new site &#34;nodjoy.com&#34; #\u521b\u5efa\u7ad9\u70b9 hugo new post\/note\/xx.md #\u521b\u5efa\u6587\u7ae0 hugo #\u7f16\u8bd1\u6240\u6709\u6587\u4ef6\u5e76\u8f93\u51fa\u5230public\u76ee\u5f55 Hug"},{"title":"\u6b22\u8fce\u5927\u5bb6","link":"https:\/\/nodjoy.com\/home\/welcome\/","pubDate":"Sun, 22 Mar 2020 18:24:39 +0800","guid":"https:\/\/nodjoy.com\/home\/welcome\/","description":"Welcome"},{"title":"About","link":"https:\/\/nodjoy.com\/about\/","pubDate":"Mon, 06 Jan 2020 19:33:20 +0800","guid":"https:\/\/nodjoy.com\/about\/","description":"\u6559\u80b2 \u5de5\u4f5c \u8054\u7cfb\u6211 \ud83d\udc47"}]}}