2015-10-13 95 views
0

有快遞這個功能,一個文件夾一個JSON文件保存到服務器快遞(節點)

var savingtheJson=function(path, jsonObject, callback){ 
    jsonfile.writeFile(file2, jsonO, callback); 
} 

我會想知道我怎麼能訪問寫一個JSON文件/讀取從瀏覽器這個文件一旦被保存。

如果我這樣做:

savingtheJson('/json/myfile.json', jsonObj, function(){ 
      console.log("done it!"); 
     }); 

當我去到瀏覽器和I型:

http://localhost:8080/json/myfile.json 

當然,我得到一個錯誤,從快車 「不能得到......」 原因我認爲是試圖解決它像一個特定的請求

我該如何存儲此文件到此目標聲明的靜態文件夾 (app.use(express.static(__dirname + '/public'))?

如何保存一次該文件?

+0

靜態服務目錄在'/ public'中,就像你提到的一樣。但IMO應該在您的Web服務中提供一個新的端點來檢索文件。 –

+0

你的意思是創建和讀取文件的應用程序端點,就像在這個例子中使用這種類型的os函數一樣? [閱讀json文件](http://stackoverflow.com/questions/12703098/how-to-get-a-json-file-in-express-js-and-display-in-view) –

+1

你肯定會不要像在服務器應用程序中那樣讀取文件。我打算創建一個新的路由(例如'/ json /:myfile')並在GET上異步讀取文件。 –

回答

6

首先,您需要定義哪個文件夾將公開顯示,以便您可以將json文件保存在其中。

您可以使用內置中間件express.static達到此目的。

在下面的例子中,我創建了一個稱爲端點其中/users?name=wilson&age=32爲了搶用戶的信息接收查詢數據爲的,那麼你可以將它保存爲名爲person.json文件年齡。

因此,在您使用上述端點後,您將能夠成功使用類似http://localhost:4040/person.json的文件。

var express = require('express'); 
var app = express(); 
var port = 4040; 
var fs = require('fs'); 

app.use(express.static('public')); 

app.get('/users', function(req, res) { 
    var name = req.query.name; 
    var age = req.query.age; 

    var person = { 
    name: name, 
    age: age 
    }; 

    savePersonToPublicFolder(person, function(err) { 
    if (err) { 
     res.status(404).send('User not saved'); 
     return; 
    } 

    res.send('User saved'); 
    }); 
}); 

function savePersonToPublicFolder(person, callback) { 
    fs.writeFile('./public/person.json', JSON.stringify(person), callback); 
} 

app.listen(port, function() { 
    console.log('server up and running at port: %s', port); 
}); 
相關問題