好看的课外书,小说阅读网站,盗墓笔记小说下载 http://marshallsonline.cn/inews/ 怎樣為Egg.js注冊為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 模塊。打開命令提示符并執(zhí)行以下命令:npm install -g egg-windows-service創(chuàng)建服務(wù)腳本:在 Egg.js 項目的根目錄下,創(chuàng)建一個名為 service.js 的腳本文件,用于定義 Windows 服務(wù)的配置和行為。以下是一個示例的 service.js 文件內(nèi)容:const Service = require('egg-windows-service'); const svc = new Service({ name: 'EggApp', // 服務(wù)名稱 description: 'Egg.js Application', // 服務(wù)描述 script: 'path/to/egg.js', // Egg.js 項目的入口文件路徑 }); svc.on('install', () => { svc.start(); }); svc.install();安裝服務(wù):在命令提示符中,切換到 Egg.js 項目根目錄,并執(zhí)行以下命令來安裝服務(wù):egg-service install啟動服務(wù):執(zhí)行以下命令來啟動服務(wù):egg-service start停止服務(wù):執(zhí)行以下命令來停止服務(wù):egg-service stop卸載服務(wù):執(zhí)行以下命令來卸載服務(wù):egg-service uninstall通過以上步驟,就可以將 Egg.js 應(yīng)用部署為 Windows 服務(wù)了??梢允褂梅?wù)管理工具(如 Windows 的服務(wù)管理器)來啟動、停止和管理該服務(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、簡單共享(無密碼) 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ù)字,按回車: 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ī)名: %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)前用戶: %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ī)時間: %%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ī)名: %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)前用戶: %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ī)時間: %%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é)點類型"|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 開始修復(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 開始修復(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 【使用說明】 echo.&echo. echo 點左側(cè)“共享”可查看本機(jī)所有共享; echo. echo 右鍵點左側(cè)“共享”可“新建共享”; echo. echo 右鍵點右側(cè)共享可“停止共享”(能多選); echo. echo 右鍵點右側(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("請手動重啟計算機(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 【使用說明】 echo -------------------------------------------- echo. echo 復(fù)制共享文件夾的地址欄路徑到下方 echo. echo 如果只共享打印機(jī),按回車鍵跳過 echo.&echo.&echo.&echo.&echo.&echo.&echo. echo 粘貼路徑,按回車: 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 山西貨通九州網(wǎng)絡(luò)科技有限公司 http://marshallsonline.cn/inews/n1/161.html 2023-07-12T16:58:17+08:00 貨通九州網(wǎng)終科技開發(fā)有限公司是一家專注于軟件開發(fā)、硬件設(shè)備和互聯(lián)網(wǎng)項目的公司。我們致力于為客戶提供創(chuàng)新的解決方案,以滿足不斷變化的市場需求。 在軟件開發(fā)方面,我們擁有高效的開發(fā)團(tuán)隊和豐富的經(jīng)驗,能夠開發(fā)各種類型的應(yīng)用軟件,包括網(wǎng)站、移動應(yīng)用、企業(yè)管理系統(tǒng)等。 在硬件設(shè)備方面,我們致力于開發(fā)創(chuàng)新的硬件產(chǎn)品,涵蓋了多個領(lǐng)域,如物聯(lián)網(wǎng)設(shè)備、嵌入式系統(tǒng)等。 此外,我們還涉足互聯(lián)網(wǎng)項目的開發(fā)。無論是電子商務(wù)平臺、在線教育系統(tǒng),還是社交媒體應(yīng)用,我們都能夠根據(jù)客戶的需求,提供定制化的解決方案,并確保項目的順利實施和有效運(yùn)營。 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)聽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è)置文字對齊方式pObj.options.align = 'right';關(guān)聯(lián)文件并導(dǎo)出const out = fs.createWriteStream('./app/public/example.docx'); docx.generate(out); VS Code配置Vue開發(fā)環(huán)境-Vetur+ESLint+Prettier http://marshallsonline.cn/inews/n3/89.html 2021-08-22T15:31:00+08:00 核心就是 Vetur+ESLint,其他的我覺得就是錦上添花的作用快速配置本文的配置是記錄Vue CLI生成的項目,若不是,請自行處理依賴關(guān)系打開 vscode 的插件安裝,搜索上面的插件,一一安裝打開 vscode 的設(shè)置,鍵入以下代碼{ // 保存時自動格式化代碼 "editor.formatOnSave": true, // eslint配置項,保存時自動修復(fù)錯誤 "editor.codeActionsOnSave": { "source.fixAll": true }, // 讓vetur使用vs自帶的js格式化工具,以便在函數(shù)前面加個空格 "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" }在項目的根目錄建立.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', }, }在項目的根目錄建立.prettierrc文件,鍵入以下代碼{ "semi": false, "singleQuote": true }在項目的根目錄建立.editorconfig文件,鍵入以下代碼(Vue CLI 已帶)[*.{js,jsx,ts,tsx,vue}] indent_style = space indent_size = 2 trim_trailing_whitespace = true insert_final_newline = true至此,即可完成,詳細(xì)解釋請看后面Vetur這個插件是 vscode 能優(yōu)雅寫 Vue 的核心,絕對的神器,它的優(yōu)點:代碼高亮代碼片段Emmet 語法支持語法錯誤校驗檢查格式化代碼代碼提醒對三方 UI 框架的支持這里主要說說格式化代碼相關(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)集成?。?!不需要額外下載了。然后來進(jìn)行一些設(shè)置,解決Vetur和ESlint的沖突。打開 vscode 的設(shè)置找個地方加入以下設(shè)置(注意最外層的{}){ // 將vetur的js格式化工具指定為vscode自帶的 "vetur.format.defaultFormatter.js": "vscode-typescript", // 移除js語句的分號 "javascript.format.semicolons": "remove", // 在函數(shù)名后面加上括號,類似這種形式 foo () {} "javascript.format.insertSpaceBeforeFunctionParenthesis": true }這里說說為什么要將 js 的格式化工具改為 vscode 自帶的。查閱 Prettier 官方文檔,發(fā)現(xiàn)不支持在函數(shù)名后面加上括號。這點和 ESLint 沖突了,所以要更改。ESLintvscode 的 ESLint 插件在某個版本已經(jīng)移除了"eslint.validate"這個配置選項,而網(wǎng)上很多教程都是使用的這個,導(dǎo)致一貼進(jìn) vscode 的配置文件,就開始保存和不兼容。在新版的 ESLint 中已經(jīng)支持了對*.vue文件的校驗,所以無需再進(jìn)行這項配置了,只需要添加一個保存時自動修復(fù) ESLint 錯誤的功能就行了。在 vscode 的配置文件中加入{ // eslint配置項,保存時自動修復(fù)錯誤 "editor.codeActionsOnSave": { "source.fixAll": true } }在項目的根目錄(也就是和package.json同級的目錄)建立.eslintrc.js文件,鍵入以下代碼:一般來說使用 Vue CLI 生成的項目,啟用 ESLint 后會自動生成這個文件。若忘了啟用,自己手動 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 來格式化這里做下簡單配置,來讓 Prettier 更好的和和 ESLint 配合。在項目的根目錄建立.prettierrc文件,鍵入以下代碼{ "semi": false, "singleQuote": true }這兩行代碼的作用是去除語句結(jié)尾的分號 ; ,以及使用單引號 ' 替代雙引號 "同時建議在 vscode 的配置文件中加入以下代碼:{ // 保存時自動格式化代碼 "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 來對 js 進(jìn)行格式化,手動指定自帶格式化工具EditorConfig for VS CodeEditorConfig 主要是用于讓 vscode 支持.editorconfig文件。.editorconfig 文件中的設(shè)置用于在基本代碼庫中維持一致的編碼風(fēng)格和設(shè)置,例如縮進(jìn)樣式、選項卡寬度、行尾字符以及編碼等,并且它還是跨編輯器的你需要和 ESLint 的配置相符否則會出現(xiàn)你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗可以這樣說,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安裝即可,無需額外配置有了它,你再也不怕找不到匹配的各種括號了。他會給匹配的括號賦予同樣的顏色,并且給你圈出范圍來BracketPairColorizer 插件Live Server為靜態(tài)和動態(tài)頁面生成一個具有實時重新加載功能的本地開發(fā)服務(wù)器,可以右擊直接在瀏覽器查看Live Server 插件Better Comments更好看的注釋,更好的區(qū)分各個地方了Better Comments 插件Auto Close Tag自動閉合標(biāo)簽Code Spell Checker單詞校驗插件,可以避免很多錯誤,單詞寫錯造成的bug,一言難盡,強(qiáng)烈安利后記為什么不使用下面的插件CSS Peek : 可能某些會造成 CPU 負(fù)載巨高Auto Rename Tag :作者說可能存在性能問題 瀏覽器打印時背景色丟失問題解決方案 http://marshallsonline.cn/inews/n3/26.html 2021-08-18T09:53:43+08:00 最近的項目在調(diào)用瀏覽器的打印功能時發(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 打印語句:console.log() ,一句話描述它!“用的時候感覺賊爽,不用的時候腦袋痛吧?”以下提供三種解決方案:一. webpack打包時去除,適合Vue項目二. vscode正則匹配,手動去除拖放整個項目文件夾到vscode選中文件夾,然后編輯->在文件中替換console.log()加了分號console\.log\(.*?\);console.log()沒加分號console\.log\(.*?\)準(zhǔn)備出一篇簡單易懂的正則.三. console.log初始化指向空(不去除) - 以微信小程序做示例console.log = () => {} console.log('console.log失效了'); 開發(fā)常用 中文字體的英文名稱(宋體 微軟雅黑) 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)的英文名稱Mac OS的一些:華文細(xì)黑:STHeiti Light [STXihei]華文黑體:STHeiti華文楷體:STKaiti華文宋體:STSong華文仿宋:STFangsong儷黑 Pro:LiHei Pro Medium儷宋 Pro:LiSong Pro Light標(biāo)楷體:BiauKai蘋果儷中黑:Apple LiGothic Medium蘋果儷細(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會生出來的一些:隸書:LiSu幼圓:YouYuan華文細(xì)黑:STXihei華文楷體:STKaiti華文宋體:STSong華文中宋:STZhongsong華文仿宋:STFangsong方正舒體:FZShuTi方正姚體:FZYaoti華文彩云:STCaiyun華文琥珀:STHupo華文隸書: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 部分。下面對字符集進(jì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ā)布,估計 GB18030 會在近期發(fā)布新版本,增加擴(kuò)展 C 部分。需要說明的是在 GB18030 中擴(kuò)展 B 部分并不是強(qiáng)制標(biāo)準(zhǔn)。如果想查看 GB18030 的標(biāo)準(zhǔn)文本,請訪問 http://www.gb168.cn 中的強(qiáng)標(biāo)閱讀。如果想了解 Unicode 的內(nèi)容,請訪問 http://www.unicode.org?,F(xiàn)在糾正網(wǎng)上普遍的一個錯誤:GB18030-2000 和 GB18030-2005 都不支持單字節(jié)的歐元符號與簡體中文有關(guān)的代嗎頁如下:936 gb2312 簡體中文(GB2312)————其實是GBK10008 x-mac-chinesesimp 簡體中文(Mac)20936 x-cp20936 簡體中文(GB2312-80)50227 x-cp50227 簡體中文(ISO-2022)51936 EUC-CN 簡體中文(EUC)52936 hz-gb-2312 簡體中文(HZ)54936 GB18030 簡體中文(GB18030)補(bǔ)充:使用楷體_GB2312、仿宋_GB2312后,在 Windows 7/Vista/2008 中可能不再顯示為對應(yīng)的字體。這是因為 Windows 7/Vista/2008 中有楷體、仿宋,默認(rèn)情況下沒有楷體_GB2312、仿宋_GB2312,字體名稱相差“_GB2312”。 mongoose 多表查詢 使用條件查詢 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', }, });