2017-08-05 29 views
-1

我有nodejs項目運行在centos 7. 我試圖運行我的nodejs項目與命令node start.js也試過sudo node start.js但往往掛斷,我也包括一個截圖,你可以在那裏找到:http://prntscr.com/g4ogcf 任何人都可以幫助我嗎?我對此一無所知,因爲它不會返回任何錯誤。Nodejs項目不啓動/掛起

我start.js應用代碼:

const app = require('express')(); 
const fs = require('fs'); 
const server = require('http').Server(app); 

const cors = require('cors'); 
const express = require('express'); 
const Database = require('./Database.js'); 
const db = new Database(); 

const cfg = require('./config/config.json'); 
const io = require('socket.io')(cfg.client.socket_port); 
const Router = require('./Router')(db, io); 
app.listen(cfg.client.server_port); 
app.use(cors()); 
app.get('/', (req, res) => { 
    fs.readFile(`${__dirname}/../public/client/app/index.html`, (err, data) => { 
     if (err) 
      throw err; 
     res.send(data.toString()) 
    }); 
}); 
app.get('/media', (req, res) => { 
    if (req.query.cfg) { 
     res.set('Content-Type', 'application/javascript'); 
     fs.readFile(`${__dirname}/config/config.json`, (err, data) => { 
      if (err) 
       throw err; 
      res.send(`export default ${JSON.stringify(JSON.parse(data).client)}`); 
     }); 
    } 
    res.set('Content-Type', 'image/jpeg'); 
    if (req.query.avatar) { 
     db.getAvatarImg(req.query.avatar).then(x => { 
      var img = x[0] ? x[0].img : ''; 

      const data = img.replace(/^data:image\/\w+;base64,/, ""); 
      const buf = new Buffer(data, 'base64'); 
      res.send(buf); 
     }); 

    } 
    if (req.query.background) { 
     db.getBackgroundImg(req.query.background).then(x => { 
      var img = x[0] ? x[0].img : ''; 
      const data = img.replace(/^data:image\/\w+;base64,/, ""); 
      const buf = new Buffer(data, 'base64'); 
      res.send(buf); 
     }); 

    } 
    if (req.query.post) { 
     db.getPostImg(req.query.post).then(x => { 
      var img = x[0] ? x[0].img : ''; 
      const data = img.replace(/^data:image\/\w+;base64,/, ""); 
      const buf = new Buffer(data, 'base64'); 
      res.send(buf); 
     }); 

    } 

}); 
app.use(express.static(`${__dirname}/../public/`)); 
+0

掛?這看起來像正常的行爲。你可以用'./config/config.json'中指定的端口訪問本地主機嗎? –

+0

在每個'require'旁邊添加一個日誌,你應該能夠找出它到達的哪一行。我並不完全相信它實際上是懸掛的,因爲我沒有看到任何日誌,而且你正在「聽」,這會使進程保持活躍狀態​​ –

+0

您可以將回調傳遞給app.listen函數作爲第二個參數,控制檯登錄東西只是爲了調試 – Teebo

回答

0

在start.js代碼年底建成

console.time('app started'); 

所有需要的語句和

console.timeEnd('app started'); 

之前。有了這個幫助,你可以檢查你的應用程序是否掛起或初始化成功。