nodejs 近期所遇到的問題及解決
文章目錄
1、unique: true引起報錯
用此方法設定唯一約束會引起node報錯,解決方式如下:
unique: 'userName'
2、介面中的時間處理,時間偏移+格式化
loginDate: {
type: DataTypes.DATE,
get() {
return moment(this.getDataValue('loginDate')).utcOffset(8).format('YYYY-MM-DD HH:mm:ss');
}
},
3、請求攜帶token
使用axios中的請求攔截器進行攜帶
axios.interceptors.request.use(
function(config) {
// 在傳送請求之前做些什麼
// 1. 傳送請求時,如果有token,則附帶到請求頭中去
const token = localStorage.getItem("token");
if (token) {
config.headers.Authorization ="bearer " + token;
}
return config;
},
function(error) {
// 對請求錯誤做些什麼
return Promise.reject(error);
}
);
4、token過期時間實時監控
在axios的響應攔截器中進行監控,具體程式碼如下:
axios.interceptors.response.use(
resp => {
// 在請求響應之後做些什麼
// 2. 響應結果如果有token,儲存token到本地
if (resp.headers.authorization) {
localStorage.setItem("token", resp.headers.authorization)
}
return resp;
}, err => {
// 3. 相應的時候,如果響應訊息碼是403(沒有token,token失效),則在本地刪除token
if (err.response.status === 403) {
localStorage.removeItem("token");
router.push("/login");
}
return Promise.reject(err);
});
5、頁面渲染落後於vueX的資料時
直接將資料動態設定到vuex中,具體程式碼如下:
<div class="welcome">
<i class="el-icon-user"></i>
歡迎登入,{{ this.$store.state.loginUser.data.userName }}
</div>
6、系統的管理員架構問題
超級管理員:只有一個,擁有檢視所有資料,修改所有資料的許可權,不可刪除和禁用自己
高階管理員:通過超級管理員開啟高階許可權,可擁有查詢所有資料,修改所有普通管理員使用者資料的許可權,不可刪除和禁用高階管理員及以上使用者,不可檢視修改許可權列。
普通管理員:不可檢視使用者管理模組,可檢視常規資料。
7、設定跨域、跨域獲取header裡面的資訊
通過cors中介軟體實現
//設定跨域
const cors = require('cors')
app.use(cors());
//設定可以跨域獲取header裡面authorization的資訊
app.all('*', function(req, res, next) {
res.header('Access-Control-Expose-Headers', 'Authorization');
next();
});
相關文章
- 近期工作遇到的問題及解決方式收藏
- Windows 10 下搭建 Homestead 環境 Vagrant up 所遇到的問題及解決Windows
- Fabric 環境搭建遇到問題及解決
- 遇到問題的解決方法
- 原始碼安裝apache(附遇到的問題及解決)原始碼Apache
- NodeJS+Express遇到的跨域問題NodeJSExpress跨域
- MAC 安裝 VMAF 遇到的問題及解決方法記錄Mac
- VS2019配置Opencv遇到的部分問題及解決方案OpenCV
- nodejs打包問題解決例項NodeJS
- 玩Deno遇到問題的解決方案
- Jekyll 本地除錯部落格遇到的問題及解決辦法除錯
- 更新macOS Monterey後遇到的各種Bug問題及解決方法Mac
- 執行docker run所遇到的問題Docker
- Pyinstaller打包Pytorch框架所遇到的問題PyTorch框架
- NodeJS 實戰系列:DevOps 尚未解決的問題NodeJSdev
- 一篇文章解決你大部分資料庫所遇到的問題資料庫
- springboot_mybatis_pageHelper所遇到的問題點Spring BootMyBatis
- 解決macbook安裝burp suite遇到的問題MacUI
- oracle 11.2.0.4 DataGuard Broker配置過程中可能遇到的問題及解決方法Oracle
- GO Modules的理解和遇到的問題解決方法Go
- Dockers 部署Nodejs環境的ts 專案遇到的問題DockerNodeJS
- PyTorch圖文安裝教程(Win10),含遇到的問題及解決辦法PyTorchWin10
- 部署專案遇到的mysql問題以及解決方法MySql
- div拖動遇到iframe卡頓的問題解決
- 使用nodeAPI時遇到非同步問題的解決方法API非同步
- IPython的安裝及問題解決Python
- 基於CodeMirror開發線上編輯器時遇到的問題及解決方案
- Selenium爬蟲遇到超時TimeOut問題的解決方法爬蟲
- mysql登入遇到ERROR 1045問題解決方法MySqlError
- Kafka常見的問題及解決方案Kafka
- CAS導致的ABA問題及解決
- Xcode 10.1 新特性及解決的問題XCode
- Harbor搭建及配置 問題解決
- Git常見問題及解決Git
- 跨域問題及解決方案跨域
- redis安裝及問題解決Redis
- @UpdateProvider註解中遇到的問題IDE
- idc管理系統應該如何去解決IDC行業所遇到的難題行業