国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【eggjs】部署egg時碰到的日志權限問題

waterc / 3257人閱讀

摘要:前兩天將一個部署到服務器時,用就是啟動不了,錯誤信息為無權限創建目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的包的問題。首先,在生產環境下的啟動是通過啟動的。

前兩天將一個egg部署到服務器時,用npm start就是啟動不了,錯誤信息為無權限創建log目錄。查看工作目錄權限,當前用戶是有權限的,看了源碼,原來是用的npm包的問題。這里簡單記錄下解決過程。

首先,在生產環境下的啟動是通過egg-script 啟動的。在啟動時,終端會有如下輸出:

Save log file to /XXX/XXX

我們查看egg-script的源碼,在他的start命令中,找到Save log file,如下


下一步,找到這個logDir變量聲明的地方,往前看就能找到,如下代碼:

const HOME = homedir();
const logDir = path.join(HOME, "logs");

那么這個homeDir()是什么呢?它是npm包node-homedir,它的方法體如下:

const os = require("os");

module.exports = () => {
  if (process.env.MOCK_HOME_DIR) return process.env.MOCK_HOME_DIR;
  if (os.userInfo && os.userInfo().homedir) {
    return os.userInfo().homedir;
  } else if (os.homedir) {
    return os.homedir();
  }
  return process.env.HOME;
};

這就很清楚了,我的服務器是centos,登錄賬戶的userInfo最終返回的homedir就是系統根目錄,"/",而不是我的項目工作目錄,由于運維設置,我沒有權限在系統/logs下寫權限,所以出現了一開始提到的錯誤。

找到原因后就很好辦了,按上面的源碼,在啟動腳本里,先創建個MOCK_HOME_DIR的環境變量,并指定到項目目錄即可。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93334.html

相關文章

  • Eggjs小試

    摘要:項目都很小,但為了進一步了解,特意選擇了作為框架基礎開發后端服務。能將請求限制在同源網站,即只有擁有專有令牌的網站發送請求才會正確響應。項目生產靜默部署,啟動使用,停止使用。不足工具函數的訪問需要自己手動添加擴展另沒有寫測試,希望下次補上。 前言 這段時間,用Eggjs作為后端服務框架開發了幾個項目。項目都很小,但為了進一步了解Eggjs,特意選擇了Eggjs作為框架基礎開發后端服務。...

    waltr 評論0 收藏0
  • node端統一錯誤處理

    摘要:好吧且不說抽象統一處理的事,解決問題才是目的。確實把整個錯誤處理可以完整的抽象出來。當然可以在中注入更多統一處理函數,也可以通過函數名做一些判斷,比如對所有名字中包含的函數進行單獨的日志處理。 起因 在之前的項目中我發現每個控制器大約都是這樣寫的 async function findId (id) { let res; try{ res = await...

    kaka 評論0 收藏0
  • Eggjs下Restful API實現

    摘要:今天就簡要說說下的實現。主要的原因是的文檔寫的不太清楚,方便新人快速上手。導致我們一目十行去掃文檔的時候,有時總會覺得有些莫名,的實現就是其中之一。其實這和我本身對的了解不深入有關,但是也沒有文檔和我說實現啊。 這兩天真的是宅的骨頭都發霉了,春困秋乏夏打盹,也是醉了。今天就簡要說說eggjs下Restful API的實現。主要的原因是egg的文檔寫的不太清楚,方便新人快速上手。話說eg...

    linkin 評論0 收藏0
  • eggjs和dubbo結合,egg-dubbo-plugin開發

    摘要:由于中的都是服務,所以需要一個插件來調用服務??梢钥吹?,只是一個封裝,真正對工作委托給了也就是。在里,我們進行了方法的綁定,這樣在里,就可以像調用方法一樣,調用服務了。完成后,補齊單元測試,發布到庫里就可。 由于MVC中的M都是dubbo服務,所以需要一個插件來調用dubbo服務。個人推薦這個包node-zookeeper-dubbo 我們所需要的只是把他封裝成一個插件,使用方式則類似...

    hoohack 評論0 收藏0
  • jwt前后端整合方案

    摘要:到這里,基于的前后端分離實現方案就搞定啦四關于的一些思考實際上,在使用的過程中有一個比較致命的缺點,就是一旦簽發了,在到期之前就會始終有效,除非服務器部署額外的邏輯。結語以上是關于基于的前后端分離實現方案的總結和思考。 一、jwt是什么 JWT全稱, JSON Web Token,是一個以JSON為基準的標準規范。 舉例:服務器認證以后,生成一個 JSON 對象,發回給用戶,就像下...

    nevermind 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<