怎样写网络小说,女强穿越玄幻完结小说,有声
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