slc pm 啓動的時候報錯以下:javascript
[root@iZuf61qpjpeuqc5mjo4kn8Z lixiang-scf-web]# slc pm strong-remoting deprecated The built-in CORS middleware provided by REST adapter was deprecated. See https://docs.strongloop.com/display/public/LB/Security+considerations for more details. ../../../../app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js:97:25 slc pm(4457) Unexpected end of JSON input [root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]# slc pm --json-file-db strong-remoting deprecated The built-in CORS middleware provided by REST adapter was deprecated. See https://docs.strongloop.com/display/public/LB/Security+considerations for more details. ../node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js:97:25 events.js:160 throw er; // Unhandled 'error' event ^ Error: SQLITE_FULL: database or disk is full at Error (native) [root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]#
定位問題:
node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_strong-remoting@2.35.1@strong-remoting/lib/remote-objects.js
查看文件:remote-objects.js
設置顯示行號:97行java
94 RemoteObjects.prototype.handler = function(name, options) { 95 var Adapter = this.adapter(name); 96 var adapter = new Adapter(this, options); 97 var handler = adapter.createHandler(); 98 99 if (handler) { 100 // allow adapter reference from handler 101 handler.adapter = adapter; 102 } 103 104 return handler; 105 };
在上一次系統部署後,包括後臺+ 前臺 在同一臺服務器上,初步懷疑是strongloop出現異常node
嘗試卸載stronglooplinux
使用命令npm uninstall -g strongloop
報錯磁盤空間不足,發現問題後臺異常日誌將系統填滿,
使用du -sh *
查找磁盤空間寫滿目錄,rm -rf *
刪除異常空間目錄web
[root@iZuf61qpjpeuqc5mjo4kn8Z strongloop]# tailf nohup.out events.js:160 throw er; // Unhandled 'error' event ^ SyntaxError: Unexpected end of JSON input at Object.parse (native) at parseAndLoad (/app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:129:21) at /app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:115:9 at tryToString (fs.js:455:3) at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:442:12) # 文件內容:/app/node-v6.9.5-linux-x64/lib/node_modules/strongloop/node_modules/_loopback-datasource-juggler@2.58.0@loopback-datasource-juggler/lib/connectors/memory.js:115:9 105 Memory.prototype.loadFromFile = function(callback) { 106 var self = this; 107 var hasLocalStorage = typeof window !== 'undefined' && window.localStorage; 108 var localStorage = hasLocalStorage && this.settings.localStorage; 109 110 if (self.settings.file) { 111 fs.readFile(self.settings.file, {encoding: 'utf8', flag: 'r'}, function(err, data) { 112 if (err && err.code !== 'ENOENT') { 113 callback && callback(err); 114 } else { 115 parseAndLoad(data); 116 }
經過修改源碼,找到對應的配置文件:npm
Memory.prototype.loadFromFile = function(callback) { 106 var self = this; 107 var hasLocalStorage = typeof window !== 'undefined' && window.localStorage; 108 var localStorage = hasLocalStorage && this.settings.localStorage; 109 110 if (self.settings.file) { 111 fs.readFile(self.settings.file, {encoding: 'utf8', flag: 'r'}, function(err, data) { 112 if (err && err.code !== 'ENOENT') { 113 callback && callback(err); 114 } else { 115 console.log(self.settings.file); 116 parseAndLoad(data); 117 } 118 }); 119 } else if (localStorage) { 120 var data = window.localStorage.getItem(localStorage); 121 data = data || '{}'; 122 parseAndLoad(data); 123 } else { 124 process.nextTick(callback); 125 } 126 127 function parseAndLoad(data) { 128 if (data) { 129 try { 130 console.log(data) 131 data = JSON.parse(data.toString()); 132 } catch (e) { 133 return callback(e); 134 }
配置文件地址:/root/.strong-pm/
裏面的全部配置jsonjson
刪除/root/.strong-pm/
中的配置文件,啓動後從新生成,經過命令配置心得環境變量
/root/.strong-pm/strong-pm.json
備份後刪除便可。服務器
從新配置環境變量
slc ctl env-set svc xxx=xxx
app
官網地址:http://strong-pm.io/ide