怎样写网络小说,女强穿越玄幻完结小说,有声 http://marshallsonline.cn/n3/ 怎樣為Egg.js注冊(cè)為windows服務(wù) http://marshallsonline.cn/inews/n3/egg-windows-service.html 2023-08-12T08:15:32+08:00 要將 Egg.js 部署為 Windows 服務(wù),可以按照以下步驟進(jìn)行操作:安裝 Node.js:首先,確保在 Windows 服務(wù)器上安裝了 Node.js 運(yùn)行環(huán)境??梢詮?Node.js 官方網(wǎng)站(https://nodejs.org/)下載并安裝最新版本的 Node.js。安裝 egg-windows-service:使用 npm 全局安裝 egg-windows-service 模塊。打開(kāi)命令提示符并執(zhí)行以下命令:npm install -g egg-windows-service創(chuàng)建服務(wù)腳本:在 Egg.js 項(xiàng)目的根目錄下,創(chuàng)建一個(gè)名為 service.js 的腳本文件,用于定義 Windows 服務(wù)的配置和行為。以下是一個(gè)示例的 service.js 文件內(nèi)容:const Service = require('egg-windows-service'); const svc = new Service({ name: 'EggApp', // 服務(wù)名稱(chēng) description: 'Egg.js Application', // 服務(wù)描述 script: 'path/to/egg.js', // Egg.js 項(xiàng)目的入口文件路徑 }); svc.on('install', () => { svc.start(); }); svc.install();安裝服務(wù):在命令提示符中,切換到 Egg.js 項(xiàng)目根目錄,并執(zhí)行以下命令來(lái)安裝服務(wù):egg-service install啟動(dòng)服務(wù):執(zhí)行以下命令來(lái)啟動(dòng)服務(wù):egg-service start停止服務(wù):執(zhí)行以下命令來(lái)停止服務(wù):egg-service stop卸載服務(wù):執(zhí)行以下命令來(lái)卸載服務(wù):egg-service uninstall通過(guò)以上步驟,就可以將 Egg.js 應(yīng)用部署為 Windows 服務(wù)了??梢允褂梅?wù)管理工具(如 Windows 的服務(wù)管理器)來(lái)啟動(dòng)、停止和管理該服務(wù)。 解決局域網(wǎng)共享,另存為bat文件使用 http://marshallsonline.cn/inews/n3/local-share.html 2023-08-05T15:02:05+08:00 @echo off color 2f mode con cols=50 lines=30 title OKShare 【制作:wnsdt】 ver | findstr "6.1">nul && set bulid=nt6 && goto sc_top ver | findstr "10.">nul && set bulid=nt10 && goto sc_top ver | findstr "5.">nul && set bulid=nt5 && goto sc_top ver | findstr "6.3">nul && set bulid=nt10 && goto sc_top ver | findstr "6.2">nul && set bulid=nt10 && goto sc_top echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 警 告 echo. echo.&echo.&echo. echo 軟件不支持你的系統(tǒng),按任意鍵退出! pause>nul 2>nul exit :sc_top cls del /q %temp%\info.txt>nul 2>nul :sc_menu echo.&echo.&echo. echo 局域網(wǎng)共享一鍵修復(fù) 19.3.13 echo. echo -------------------------------------------- echo.&echo.&echo. echo 1、本機(jī)網(wǎng)絡(luò)信息 echo. echo 2、簡(jiǎn)單共享(無(wú)密碼) echo. echo 3、密碼共享 echo. echo 4、共享和權(quán)限管理 echo. echo 5、權(quán)限設(shè)置指南(圖文) echo. echo 6、打印機(jī)共享指南(圖文) echo. echo 7、更新與反饋 echo.&echo.&echo.&echo.&echo. set select= set str1=1234567 set /p select= 輸入數(shù)字,按回車(chē): if not defined select goto sc_wrong echo %select%|findstr "[%str1%]">nul||goto sc_wrong if %select%==1 (goto sc_info) if %select%==2 (goto sc_zd) if %select%==3 (goto sc_sd) if %select%==4 (goto sc_gl) if %select%==5 (goto sc_help) if %select%==6 (goto sc_print) if %select%==7 (goto sc_update) :sc_wrong mshta vbscript:msgbox("只能輸入1-7的數(shù)字",64,"提示")(window.close) goto sc_top :sc_info cls echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 正在處理信息.... if %bulid%==nt5 (goto sc_nt5) else (goto sc_nt6) :sc_nt5 (echo. echo.)>>%temp%\info.txt ping www.baidu.com -n 1 >nul || echo 互聯(lián)網(wǎng)狀態(tài): [ 離線 ]>>%temp%\info.txt && goto sc_ver_nt5 echo 互聯(lián)網(wǎng)狀態(tài): [ 在線 ]>>%temp%\info.txt :sc_ver_nt5 (echo ---------------------------------------------------------- echo.)>>%temp%\info.txt for /f "skip=1 tokens=2-4 delims=, " %%a in ('wmic os get caption') do ( if exist %windir%\SysWOW64 echo 系統(tǒng)版本: %%a %%b %%c 64位>>%temp%\info.txt & goto sc_ver_nt5_next echo 系統(tǒng)版本: %%a %%b %%c 32位>>%temp%\info.txt ) :sc_ver_nt5_next (echo. echo 計(jì)算機(jī)名: %COMPUTERNAME% echo.)>>%temp%\info.txt for /f "tokens=2 delims= " %%a in ('net config workstation^|findstr /c:"工作站域"') do echo 工作組: %%a>>%temp%\info.txt & goto sc_info_nt5 :sc_info_nt5 (echo. echo 當(dāng)前用戶(hù): %USERNAME% echo.)>>%temp%\info.txt for /f "delims=" %%a in ('date /t') do echo 本機(jī)日期: %%a>>%temp%\info.txt echo.>>%temp%\info.txt for /f "delims=" %%a in ('time /t') do echo 本機(jī)時(shí)間: %%a>>%temp%\info.txt echo ---------------------------------------------------------->>%temp%\info.txt goto sc_info_more :sc_nt6 (echo. echo.)>>%temp%\info.txt ping www.baidu.com -n 1 >nul || echo 互聯(lián)網(wǎng)狀態(tài): [ 離線 ]>>%temp%\info.txt && goto sc_ver_nt6 echo 互聯(lián)網(wǎng)狀態(tài): [ 在線 ]>>%temp%\info.txt :sc_ver_nt6 (echo ---------------------------------------------------------- echo.)>>%temp%\info.txt for /f "skip=1 tokens=2-5 delims=?, " %%a in ('wmic os get caption') do ( if exist %windir%\SysWOW64 echo 系統(tǒng)版本: %%a %%b %%c %%d 64位>>%temp%\info.txt & goto sc_ver_nt6_next echo 系統(tǒng)版本: %%a %%b %%c %%d 32位>>%temp%\info.txt ) :sc_ver_nt6_next (echo. echo 計(jì)算機(jī)名: %COMPUTERNAME% echo.)>>%temp%\info.txt for /f "tokens=2 delims= " %%a in ('net config workstation^|findstr /c:"工作站域"') do echo 工作組: %%a>>%temp%\info.txt (echo. echo 當(dāng)前用戶(hù): %USERNAME% echo.)>>%temp%\info.txt for /f "delims=" %%a in ('date /t') do echo 本機(jī)日期: %%a>>%temp%\info.txt echo.>>%temp%\info.txt for /f "delims=" %%a in ('time /t') do echo 本機(jī)時(shí)間: %%a>>%temp%\info.txt echo ---------------------------------------------------------->>%temp%\info.txt :sc_info_more if %bulid%==nt5 ipconfig /all|findstr /v /c:"Windows IP Configuration"|findstr /v /c:"Host Name"|findstr /v /c:"Primary Dns Suffix"|findstr /v /c:"Node Type"|findstr /v /c:"IP Routing Enabled"|findstr /v /c:"WINS Proxy Enabled">>%temp%\info.txt && goto sc_info_next ipconfig /all|findstr /v /c:"Windows IP 配置"|findstr /v /c:"主機(jī)名"|findstr /v /c:"主 DNS 后綴"|findstr /v /c:"節(jié)點(diǎn)類(lèi)型"|findstr /v /c:"IP 路由已啟用"|findstr /v /c:"WINS 代理已啟用">>%temp%\info.txt :sc_info_next (echo. echo ---------------------------------------------------------- echo. echo.)>>%temp%\info.txt start /w notepad %temp%\info.txt del /q %temp%\info.txt>nul 2>nul goto sc_top :sc_zd call :sc_qxfix cls echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 開(kāi)始修復(fù)...... net user guest /active:yes>nul 2>nul net user guest "">nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v LimitBlankPasswordUse /t REG_DWORD /d 0x0 /f>nul 2>nul if %bulid%==nt10 reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymoussam /t REG_DWORD /d 0x0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v LmCompatibilityLevel /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v everyoneincludesanonymous /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v NoLmHash /t REG_DWORD /d 0x0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v restrictnullsessaccess /t REG_DWORD /d 0x0 /f>nul 2>nul goto sc_main :sc_sd call :sc_qxfix cls echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 開(kāi)始修復(fù)...... net user guest /active:no>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinClientSec /t REG_DWORD /d 0x0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinServerSec /t REG_DWORD /d 0x0 /f>nul 2>nul goto sc_main :sc_main sc config LanmanWorkstation start= auto>nul 2>nul sc config LanmanServer start= auto>nul 2>nul sc config Winmgmt start= auto>nul 2>nul sc config RpcSs start= auto>nul 2>nul sc config Netman start= auto>nul 2>nul sc config RasMan start= demand>nul 2>nul sc config SSDPSRV start= auto>nul 2>nul sc config BFE start= auto>nul 2>nul sc config ALG start= demand>nul 2>nul sc config SharedAccess start= auto>nul 2>nul net start SharedAccess /y>nul 2>nul sc config Browser start= auto>nul 2>nul net start Browser /y>nul 2>nul sc config Dnscache start= auto>nul 2>nul net start Dnscache /y>nul 2>nul sc config Dhcp start= auto>nul 2>nul net start Dhcp /y>nul 2>nul sc config lmhosts start= auto>nul 2>nul net start lmhosts /y>nul 2>nul sc config Spooler start= auto>nul 2>nul net start Spooler /y>nul 2>nul sc config upnphost start= demand>nul 2>nul net start upnphost /y>nul 2>nul reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon" /v Start|findstr "0x4">nul 2>nul && sc config Netlogon start= demand>nul 2>nul reg add "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v TransportBindName /t REG_SZ /d \Device\ /f>nul 2>nul reg delete "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v SMB1 /F>nul 2>nul reg delete "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v SMB2 /F>nul 2>nul reg delete "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v SMBDeviceEnabled /F>nul 2>nul sc config netbt start= system>nul 2>nul net start netbt>nul 2>nul if %bulid%==nt5 (goto sc_sernt5) else (goto sc_sernt6) :sc_sernt5 sc config PlugPlay start= auto>nul 2>nul sc config TapiSrv start= auto>nul 2>nul sc config Nla start= auto>nul 2>nul net start Nla /y>nul 2>nul netsh firewall set service type = fileandprint mode = enable scope = subnet>nul 2>nul set "nbt=HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces" for /f "tokens=2 delims={" %%a in ('reg query "%nbt%"') do (reg query "%nbt%\TCPIP_{%%a" /s|findstr /i /c:"NetbiosOptions">nul && reg add "%nbt%\TCPIP_{%%a" /v NetbiosOptions /t REG_DWORD /d 0x0 /f>nul 2>nul) goto sc_main2_etc :sc_sernt6 sc config DcomLaunch start= auto>nul 2>nul sc config RpcEptMapper start= auto>nul 2>nul sc config SamSs start= auto>nul 2>nul sc config nsi start= auto>nul 2>nul sc config SstpSvc start= demand>nul 2>nul sc config MpsSvc start= auto>nul 2>nul net start MpsSvc /y>nul 2>nul sc config NlaSvc start= auto>nul 2>nul sc config netprofm start= auto>nul 2>nul sc config fdPHost start= auto>nul 2>nul net start fdPHost /y>nul 2>nul sc config FDResPub start= auto>nul 2>nul net start FDResPub /y>nul 2>nul sc config HomeGroupListener start= auto>nul 2>nul sc config WMPNetworkSvc start= auto>nul 2>nul net start WMPNetworkSvc /y>nul 2>nul sc config HomeGroupProvider start= auto>nul 2>nul net start HomeGroupProvider /y>nul 2>nul netsh advfirewall firewall set rule group=\"網(wǎng)絡(luò)發(fā)現(xiàn)\" new enable=Yes>nul 2>nul netsh advfirewall firewall set rule group=\"文件和打印機(jī)共享\" new enable=Yes>nul 2>nul if %bulid%==nt10 powershell -NonInteractive "Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol">nul 2>nul for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces" /s /e /f "0x2"^|findstr "\Tcpip_"') do reg add "%%a" /v NetbiosOptions /t REG_DWORD /d 0x0 /f>nul 2>nul :sc_main2_etc (echo [Unicode] echo Unicode=yes echo [Version] echo signature="$CHICAGO$" echo Revision=1 echo [Privilege Rights] echo sedenynetworklogonright = echo senetworklogonright = Everyone,Administrators,Users,Power Users,Backup Operators,guest)>>%temp%\zcl.inf secedit /configure /db %temp%\zcl.sdb /cfg %temp%\zcl.inf /log %temp%\zcl.log /quiet del /q %temp%\zcl.*>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymous /t REG_DWORD /d 0x0 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0x1 /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v MaintainServerList /t REG_SZ /d Auto /f>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v IsDomainMaster /t REG_SZ /d FALSE /f>nul 2>nul reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS|findstr "0x0">nul 2>nul && reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS /t REG_DWORD /d 0x1 /f>nul 2>nul reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\{D6277990-4C6A-11CF-8D87-00AA0060F5BF}" /f>nul 2>nul net use * /del /y>nul 2>nul net config server /hidden:no>nul 2>nul net share ipc$>nul 2>nul reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v NodeType /f>nul 2>nul reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v DhcpNodeType /f>nul 2>nul goto sc_tip :sc_gl cls reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest|findstr "0x1">nul 2>nul||goto classic reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x0 /f>nul 2>nul set jlb=y :classic echo.&echo.&echo.&echo. echo 功能:管理本機(jī)共享,修改共享權(quán)限 echo. echo 家庭版系統(tǒng)僅支持查看共享 echo ---------------------------------------------- echo.&echo.&echo.&echo.&echo. echo 【使用說(shuō)明】 echo.&echo. echo 點(diǎn)左側(cè)“共享”可查看本機(jī)所有共享; echo. echo 右鍵點(diǎn)左側(cè)“共享”可“新建共享”; echo. echo 右鍵點(diǎn)右側(cè)共享可“停止共享”(能多選); echo. echo 右鍵點(diǎn)右側(cè)共享選“屬性”可修改權(quán)限; echo.&echo.&echo.&echo.&echo.&echo.&echo. fsmgmt.msc if %jlb%==y reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x1 /f>nul 2>nul goto sc_top :sc_tip cls echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 修復(fù)已完成?。。?mshta vbscript:msgbox("請(qǐng)手動(dòng)重啟計(jì)算機(jī)",64,"提示")(window.close) exit :sc_help cls start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24285252" goto sc_top :sc_print cls start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24187152" goto sc_top :sc_update cls start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24178142" goto sc_top goto :eof :sc_qxfix cls echo.&echo.&echo. echo 【使用說(shuō)明】 echo -------------------------------------------- echo. echo 復(fù)制共享文件夾的地址欄路徑到下方 echo. echo 如果只共享打印機(jī),按回車(chē)鍵跳過(guò) echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 粘貼路徑,按回車(chē): echo.&echo. set /p lj= for %%a in ("%lj%") do set name=%%~na net share "%name%"="%lj%">nul 2>nul if %bulid%==nt5 cacls "%lj%" /t /e /p everyone:f >nul 2>nul && goto :eof icacls "%lj%" /grant everyone:(oi)(ci)F>nul 2>nul goto :eof node 生成公鑰私鑰加密 http://marshallsonline.cn/inews/n3/126.html 2023-03-18T14:04:00+08:00 生成私鑰和公鑰const { generateKeyPairSync } = require('crypto'); const { publicKey, privateKey } = generateKeyPairSync('rsa', { modulusLength: 4096, publicKeyEncoding: { type: 'spki', format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem', cipher: 'aes-256-cbc', passphrase: 'top secret' } });公鑰加密,私鑰解密const crypto = require('crypto'); const fs = require('fs'); const publicKey = fs.readFileSync('./app/controller/publicKey.pem'); const privateKey = fs.readFileSync('./app/controller/privateKey.pem'); const secret = JSON.stringify({ a: 1 }); const encrypt = crypto.publicEncrypt(publicKey, Buffer.from(secret)); console.log(encrypt); const decrypt = crypto.privateDecrypt({ key: privateKey, passphrase: '1233211234567' }, encrypt); console.log(JSON.parse(decrypt.toString())); nodejs 生成 word officegen模塊使用方法 http://marshallsonline.cn/inews/n3/officegen.html 2021-11-16T09:34:00+08:00 詳細(xì)文檔鏈接https://github.com/Ziv-Barber/officegen/blob/87dd5501968501555ea3bee60043affc9f67c1fa/manual/docx/README.md引用const officegen = require('officegen');監(jiān)聽(tīng)docx.on('finalize', function(written) { console.log( 'Finish to create a Microsoft Word document.' ); }); // Officegen calling this function to report errors: docx.on('error', function(err) { console.log(err); }); out.on('error', function(err) { console.log(err); });生成一行l(wèi)et pObj = docx.createP();行內(nèi)添加文字元素pObj.addText(' and back color.', { color: '00ffff', back: '000088',shdType: 'pct12',shdColor: 'ff0000' ,link: 'https://github.com'});設(shè)置文字對(duì)齊方式pObj.options.align = 'right';關(guān)聯(lián)文件并導(dǎo)出const out = fs.createWriteStream('./app/public/example.docx'); docx.generate(out); VS Code配置Vue開(kāi)發(fā)環(huán)境-Vetur+ESLint+Prettier http://marshallsonline.cn/inews/n3/89.html 2021-08-22T15:31:00+08:00 核心就是 Vetur+ESLint,其他的我覺(jué)得就是錦上添花的作用快速配置本文的配置是記錄Vue CLI生成的項(xiàng)目,若不是,請(qǐng)自行處理依賴(lài)關(guān)系打開(kāi) vscode 的插件安裝,搜索上面的插件,一一安裝打開(kāi) vscode 的設(shè)置,鍵入以下代碼{ // 保存時(shí)自動(dòng)格式化代碼 "editor.formatOnSave": true, // eslint配置項(xiàng),保存時(shí)自動(dòng)修復(fù)錯(cuò)誤 "editor.codeActionsOnSave": { "source.fixAll": true }, // 讓vetur使用vs自帶的js格式化工具,以便在函數(shù)前面加個(gè)空格 "vetur.format.defaultFormatter.js": "vscode-typescript", "javascript.format.semicolons": "remove", "javascript.format.insertSpaceBeforeFunctionParenthesis": true, // 指定 *.vue 文件的格式化工具為vetur "[vue]": { "editor.defaultFormatter": "octref.vetur" }, // 指定 *.js 文件的格式化工具為vscode自帶 "[javascript]": { "editor.defaultFormatter": "vscode.typescript-language-features" }, // 默認(rèn)使用prettier格式化支持的文件 "editor.defaultFormatter": "esbenp.prettier-vscode" }在項(xiàng)目的根目錄建立.eslintrc.js文件,鍵入以下代碼(Vue CLI 已帶)module.exports = { root: true, env: { node: true, }, extends: ['plugin:vue/essential', '@vue/standard'], parserOptions: { parser: 'babel-eslint', }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', }, }在項(xiàng)目的根目錄建立.prettierrc文件,鍵入以下代碼{ "semi": false, "singleQuote": true }在項(xiàng)目的根目錄建立.editorconfig文件,鍵入以下代碼(Vue CLI 已帶)[*.{js,jsx,ts,tsx,vue}] indent_style = space indent_size = 2 trim_trailing_whitespace = true insert_final_newline = true至此,即可完成,詳細(xì)解釋請(qǐng)看后面Vetur這個(gè)插件是 vscode 能優(yōu)雅寫(xiě) Vue 的核心,絕對(duì)的神器,它的優(yōu)點(diǎn):代碼高亮代碼片段Emmet 語(yǔ)法支持語(yǔ)法錯(cuò)誤校驗(yàn)檢查格式化代碼代碼提醒對(duì)三方 UI 框架的支持這里主要說(shuō)說(shuō)格式化代碼相關(guān),防止和 ESLint 打架。從官方文檔可以看出,Vetur集成了prettier,這就非常棒了。Vetur能夠讓 *.vue 文件中不同的塊使用不同的格式化方案,調(diào)用 html 格式化工具,低啊用 JavaScript 格式化工具,使用樣式格式化工具。默認(rèn)的格式化工具{ "vetur.format.defaultFormatter.html": "prettyhtml", "vetur.format.defaultFormatter.css": "prettier", "vetur.format.defaultFormatter.postcss": "prettier", "vetur.format.defaultFormatter.scss": "prettier", "vetur.format.defaultFormatter.less": "prettier", "vetur.format.defaultFormatter.stylus": "stylus-supremacy", "vetur.format.defaultFormatter.js": "prettier", "vetur.format.defaultFormatter.ts": "prettier", "vetur.format.defaultFormatter.sass": "sass-formatter" }重要的是,這些工具已經(jīng)集成?。?!不需要額外下載了。然后來(lái)進(jìn)行一些設(shè)置,解決Vetur和ESlint的沖突。打開(kāi) vscode 的設(shè)置找個(gè)地方加入以下設(shè)置(注意最外層的{}){ // 將vetur的js格式化工具指定為vscode自帶的 "vetur.format.defaultFormatter.js": "vscode-typescript", // 移除js語(yǔ)句的分號(hào) "javascript.format.semicolons": "remove", // 在函數(shù)名后面加上括號(hào),類(lèi)似這種形式 foo () {} "javascript.format.insertSpaceBeforeFunctionParenthesis": true }這里說(shuō)說(shuō)為什么要將 js 的格式化工具改為 vscode 自帶的。查閱 Prettier 官方文檔,發(fā)現(xiàn)不支持在函數(shù)名后面加上括號(hào)。這點(diǎn)和 ESLint 沖突了,所以要更改。ESLintvscode 的 ESLint 插件在某個(gè)版本已經(jīng)移除了"eslint.validate"這個(gè)配置選項(xiàng),而網(wǎng)上很多教程都是使用的這個(gè),導(dǎo)致一貼進(jìn) vscode 的配置文件,就開(kāi)始保存和不兼容。在新版的 ESLint 中已經(jīng)支持了對(duì)*.vue文件的校驗(yàn),所以無(wú)需再進(jìn)行這項(xiàng)配置了,只需要添加一個(gè)保存時(shí)自動(dòng)修復(fù) ESLint 錯(cuò)誤的功能就行了。在 vscode 的配置文件中加入{ // eslint配置項(xiàng),保存時(shí)自動(dòng)修復(fù)錯(cuò)誤 "editor.codeActionsOnSave": { "source.fixAll": true } }在項(xiàng)目的根目錄(也就是和package.json同級(jí)的目錄)建立.eslintrc.js文件,鍵入以下代碼:一般來(lái)說(shuō)使用 Vue CLI 生成的項(xiàng)目,啟用 ESLint 后會(huì)自動(dòng)生成這個(gè)文件。若忘了啟用,自己手動(dòng) npm 安裝 eslint 相關(guān)插件即可module.exports = { root: true, env: { node: true, }, extends: ['plugin:vue/essential', '@vue/standard'], parserOptions: { parser: 'babel-eslint', }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', }, }PrettierVueter 雖好但只能作用于.vue文件,其他的文件像 .js *.html 等還需要使用 Prettier 來(lái)格式化這里做下簡(jiǎn)單配置,來(lái)讓 Prettier 更好的和和 ESLint 配合。在項(xiàng)目的根目錄建立.prettierrc文件,鍵入以下代碼{ "semi": false, "singleQuote": true }這兩行代碼的作用是去除語(yǔ)句結(jié)尾的分號(hào) ; ,以及使用單引號(hào) ' 替代雙引號(hào) "同時(shí)建議在 vscode 的配置文件中加入以下代碼:{ // 保存時(shí)自動(dòng)格式化代碼 "editor.formatOnSave": true, // 默認(rèn)使用prettier格式化支持的文件 "editor.defaultFormatter": "esbenp.prettier-vscode", // 指定 *.vue 文件的格式化工具為vetur,防止和prettier沖突 "[vue]": { "editor.defaultFormatter": "octref.vetur" }, // 指定 *.js 文件的格式化工具為vscode自帶,以符合ESLint規(guī)范 "[javascript]": { "editor.defaultFormatter": "vscode.typescript-language-features" } }為符合 ESLint 規(guī)范,建議將不要使用 Prettier 來(lái)對(duì) js 進(jìn)行格式化,手動(dòng)指定自帶格式化工具EditorConfig for VS CodeEditorConfig 主要是用于讓 vscode 支持.editorconfig文件。.editorconfig 文件中的設(shè)置用于在基本代碼庫(kù)中維持一致的編碼風(fēng)格和設(shè)置,例如縮進(jìn)樣式、選項(xiàng)卡寬度、行尾字符以及編碼等,并且它還是跨編輯器的你需要和 ESLint 的配置相符否則會(huì)出現(xiàn)你格式化代碼以后,卻不能通過(guò)你的代碼校驗(yàn)工具的檢驗(yàn)可以這樣說(shuō),EditorConfig 是讓代碼創(chuàng)建前保持規(guī)范, Prettier 是讓代碼保存后保持規(guī)范示例:[*.{js,jsx,ts,tsx,vue}] indent_style = space indent_size = 2 trim_trailing_whitespace = true insert_final_newline = true Bracket Pair Colorizer 2安裝即可,無(wú)需額外配置有了它,你再也不怕找不到匹配的各種括號(hào)了。他會(huì)給匹配的括號(hào)賦予同樣的顏色,并且給你圈出范圍來(lái)BracketPairColorizer 插件Live Server為靜態(tài)和動(dòng)態(tài)頁(yè)面生成一個(gè)具有實(shí)時(shí)重新加載功能的本地開(kāi)發(fā)服務(wù)器,可以右擊直接在瀏覽器查看Live Server 插件Better Comments更好看的注釋?zhuān)玫膮^(qū)分各個(gè)地方了Better Comments 插件Auto Close Tag自動(dòng)閉合標(biāo)簽Code Spell Checker單詞校驗(yàn)插件,可以避免很多錯(cuò)誤,單詞寫(xiě)錯(cuò)造成的bug,一言難盡,強(qiáng)烈安利后記為什么不使用下面的插件CSS Peek : 可能某些會(huì)造成 CPU 負(fù)載巨高Auto Rename Tag :作者說(shuō)可能存在性能問(wèn)題 瀏覽器打印時(shí)背景色丟失問(wèn)題解決方案 http://marshallsonline.cn/inews/n3/26.html 2021-08-18T09:53:43+08:00 最近的項(xiàng)目在調(diào)用瀏覽器的打印功能時(shí)發(fā)現(xiàn)表格設(shè)置的背景色丟失。添加以下 CSS 代碼解決://google chrome explore -webkit-print-color-adjust: exact; //firefox explore -moz-print-color-adjust: exact; color-adjust: exact; 正則去除vscode中的console.log http://marshallsonline.cn/inews/n3/console.html 2021-08-06T17:16:00+08:00 打印語(yǔ)句:console.log() ,一句話描述它!“用的時(shí)候感覺(jué)賊爽,不用的時(shí)候腦袋痛吧?”以下提供三種解決方案:一. webpack打包時(shí)去除,適合Vue項(xiàng)目二. vscode正則匹配,手動(dòng)去除拖放整個(gè)項(xiàng)目文件夾到vscode選中文件夾,然后編輯->在文件中替換console.log()加了分號(hào)console\.log\(.*?\);console.log()沒(méi)加分號(hào)console\.log\(.*?\)準(zhǔn)備出一篇簡(jiǎn)單易懂的正則.三. console.log初始化指向空(不去除) - 以微信小程序做示例console.log = () => {} console.log('console.log失效了'); 開(kāi)發(fā)常用 中文字體的英文名稱(chēng)(宋體 微軟雅黑) http://marshallsonline.cn/inews/n3/20.html 2021-07-11T16:18:06+08:00 宋體 SimSun黑體 SimHei微軟雅黑 Microsoft YaHei微軟正黑體 Microsoft JhengHei新宋體 NSimSun新細(xì)明體 PMingLiU細(xì)明體 MingLiU標(biāo)楷體 DFKai-SB仿宋 FangSong楷體 KaiTi仿宋_GB2312 FangSong_GB2312楷體_GB2312 KaiTi_GB2312宋體:SimSuncss中中文字體(font-family)的英文名稱(chēng)Mac OS的一些:華文細(xì)黑:STHeiti Light [STXihei]華文黑體:STHeiti華文楷體:STKaiti華文宋體:STSong華文仿宋:STFangsong儷黑 Pro:LiHei Pro Medium儷宋 Pro:LiSong Pro Light標(biāo)楷體:BiauKai蘋(píng)果儷中黑:Apple LiGothic Medium蘋(píng)果儷細(xì)宋:Apple LiSung LightWindows的一些:新細(xì)明體:PMingLiU細(xì)明體:MingLiU標(biāo)楷體:DFKai-SB黑體:SimHei新宋體:NSimSun仿宋:FangSong楷體:KaiTi仿宋_GB2312:FangSong_GB2312楷體_GB2312:KaiTi_GB2312微軟正黑體:Microsoft JhengHei微軟雅黑體:Microsoft YaHei裝Office會(huì)生出來(lái)的一些:隸書(shū):LiSu幼圓:YouYuan華文細(xì)黑:STXihei華文楷體:STKaiti華文宋體:STSong華文中宋:STZhongsong華文仿宋:STFangsong方正舒體:FZShuTi方正姚體:FZYaoti華文彩云:STCaiyun華文琥珀:STHupo華文隸書(shū):STLiti華文行楷:STXingkai華文新魏:STXinweiWindows 中的中文字體。在默認(rèn)情況下,也就是未自行安裝新字體或者 Office 等文字處理軟件的情況下,Windows 默認(rèn)提供下列字體:Windows 95/98/98SE 宋體、黑體、楷體_GB2312、仿宋_GB2312Windows XP/2000/2003/ME/NT 宋體/新宋體、黑體、楷體_GB2312、仿宋_GB2312 (Windows XP SP3 宋體-PUA)Windows Vista/7/2008 宋體/新宋體、黑體、楷體、仿宋、微軟雅黑、SimSun-ExtB那么每種字體能顯示那些漢字呢?Vista 之前的 Windows 中宋體/新宋體、黑體支持 GBK 1.0 字符集,楷體_GB2312、仿宋_GB2312 支持 GB2312-80 字符集。(注:Windows 3.X 只能支持 GB2312-80 字符集)Vista 及之后的 Windows 中宋體/新宋體、黑體、楷體、仿宋、微軟雅黑支持 GB18030-2000 字符集,SimSun-ExtB 只支持 GB18030-2005 字符集擴(kuò)展 B 部分。下面對(duì)字符集進(jìn)行簡(jiǎn)單的介紹:GB2312-80 < GBK 1.0 < GB18030-2000 < GB18030-2005GB2312-80 中的字符數(shù)量最少,GB18030-2005 字符數(shù)量最多。GB2312-80 是最早的版本,字符數(shù)比較少;GBK 1.0 中的漢字大致與 Unicode 1.1 中的漢字?jǐn)?shù)量相同;GB18030-2000 中的漢字大致與 Unicode 3.0 中的漢字?jǐn)?shù)量相同,主要增加了擴(kuò)展 A 部分;GB18030-2005 中的漢字大致與 Unicode 4.1 中的漢字?jǐn)?shù)量相同,主要增加了擴(kuò)展 B 部分;由于 Unicode 5.2 的發(fā)布,估計(jì) GB18030 會(huì)在近期發(fā)布新版本,增加擴(kuò)展 C 部分。需要說(shuō)明的是在 GB18030 中擴(kuò)展 B 部分并不是強(qiáng)制標(biāo)準(zhǔn)。如果想查看 GB18030 的標(biāo)準(zhǔn)文本,請(qǐng)?jiān)L問(wèn) http://www.gb168.cn 中的強(qiáng)標(biāo)閱讀。如果想了解 Unicode 的內(nèi)容,請(qǐng)?jiān)L問(wèn) http://www.unicode.org?,F(xiàn)在糾正網(wǎng)上普遍的一個(gè)錯(cuò)誤:GB18030-2000 和 GB18030-2005 都不支持單字節(jié)的歐元符號(hào)與簡(jiǎn)體中文有關(guān)的代嗎頁(yè)如下:936 gb2312 簡(jiǎn)體中文(GB2312)————其實(shí)是GBK10008 x-mac-chinesesimp 簡(jiǎn)體中文(Mac)20936 x-cp20936 簡(jiǎn)體中文(GB2312-80)50227 x-cp50227 簡(jiǎn)體中文(ISO-2022)51936 EUC-CN 簡(jiǎn)體中文(EUC)52936 hz-gb-2312 簡(jiǎn)體中文(HZ)54936 GB18030 簡(jiǎn)體中文(GB18030)補(bǔ)充:使用楷體_GB2312、仿宋_GB2312后,在 Windows 7/Vista/2008 中可能不再顯示為對(duì)應(yīng)的字體。這是因?yàn)?Windows 7/Vista/2008 中有楷體、仿宋,默認(rèn)情況下沒(méi)有楷體_GB2312、仿宋_GB2312,字體名稱(chēng)相差“_GB2312”。 mongoose 多表查詢(xún) 使用條件查詢(xún) http://marshallsonline.cn/inews/n3/16.html 2021-06-21T12:16:00+08:00 aggregate.push({ $lookup: { from: 'examnum', let: { userId: '$_id' }, pipeline: [ { $match: { $expr: { $eq: [ '$exambatchId', mongoose.Types.ObjectId(data.exambatchId) ], }, }, }, { $match: { $expr: { $eq: [ '$userId', '$$userId' ], }, }, }, { $sort: { _id: 1 }, }, { $limit: 1, }, ], as: 'examnum', }, }); Node.js常用的后端開(kāi)發(fā)模塊整理 http://marshallsonline.cn/inews/n3/nodejs_npm.html 2020-12-24T16:14:00+08:00 整理下在eggjs開(kāi)發(fā)中常用的后端模塊,部分模塊egg專(zhuān)屬驗(yàn)證相關(guān)egg-jwt$ npm i egg-jwt --save處理跨域請(qǐng)求egg-cors$ npm i egg-cors --save處理異常egg-errors$ npm i egg-errors --save數(shù)據(jù)庫(kù)egg-mongoose$ npm i egg-mongoose --save輸入?yún)?shù)驗(yàn)證egg-validate$ npm i egg-validate --save加密md5$ npm i md5 --save時(shí)間格式處理moment$ npm i moment --save郵件發(fā)送nodemailer$ npm i nodemailer --saveAPP推送jpush-async$ npm i jpush-async --save