2017-07-09 56 views
0

我試圖創建文件並將它們放入文件夾,然後發送鏈接到Microsoft Emotion API。創建/重新加載node.js中的動態快速文件夾

app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json({limit: '4mb'})); 

app.use('/pics', express.static(path.join(__dirname, 'pics'))) 
app.post('/face', function(req, res){ 
    var base64Data = req.body.img.replace(/^data:image\/png;base64,/, ""); 
    var id; 
    fs.readdir("./pics", (err, files) => { 
     id = files.length; 
     fs.writeFile(`./pics/${id}.png`, base64Data, 'base64', function(err) { 
      console.log(err); 
      reload(http, app); 
      setTimeout(function(){ 
       fetch(`https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize`, { 
        method: "POST", 
        data: `{"url": "${"https://{ngrok-id}.ngrok.io/pics/"+id+".png"}"}`, 
        headers: { 
         'Content-Type': 'application/json', 
         'Ocp-Apim-Subscription-Key': '{api-key}' 
        } 
       }).then(function(data) { 
        return data.json(); 
       }).then(function(data){ 
        console.log(`{"url": "${"https://{ngrok-id}.ngrok.io/pics/"+id+".png"}"}`); 
        res.json(data); 
       }); 
      }, 2000); 
     }); 
    }); 
}); 

有沒有辦法讓快遞文件夾動態或重新加載靜態文件夾?

回答

0

我認爲你誤解了術語靜態。簡而言之,這意味着:

靜態[資產]是不會改變的。

關鍵詞:不改變。到目前爲止,你的邏輯表示你將會在一個應該是靜態的文件夾中對文件進行變異。不要這樣做。

創建或使用不同的路徑來修改文件。無法「重新加載文件夾」,無論是否爲靜態文件夾。您必須通過fs.readdir明確地從您正在執行的文件夾中讀取。

0

您可以嘗試進行實驗: https://nodemon.io

這將重新加載整個應用程序,當內容它的變化。

該工具是爲開發目的而構建的,我從未在生產中嘗試過。但也許它符合你的需求。