2016-03-13 45 views
0

我有一個非常簡單的單頁應用程序(由index.html,style.css,functions.js和data.json組成),我試圖變成一個Express/Node.js應用程序來添加一些附加功能。我是Node.js的新手。將單頁應用程序轉換爲Express應用程序,AJAX和.json文件存在問題

我已經通過創建一個app.js文件,其中包含下面的代碼這樣做:

var express = require('express'); 
var app = express(); 
var path = require('path'); 

// viewed at http://localhost:8080 
app.use(express.static(__dirname + '/public')); 

app.listen(8080); 

基本的應用程序文件都在/公用文件夾,所以這個工作得很好。唯一不能工作的部分是POST請求,它是functions.js中的一個AJAX函數,用於提取data.json。現在,這會返回一個404

現在,我可以通過添加以下代碼來獲取app.js到data.json app.js:

var testData = require("./public/data.json"); 
console.log(testData); 

這只是正常和日誌來安慰,所以它的工作,我知道它正在找到該文件,但數據不可用於我的functions.js文件中的任何功能。我猜這是因爲它在服務器端,而AJAX請求會將它帶到客戶端。就像我說的,我是Node.js和Express的新手,這是我理解不足的地方。

所以,我的問題是,如何複製我在我的functions.js文件中的AJAX POST請求的功能?是否只需要將我的data.json文件放在其他位置,或者設置另一條路徑?或者,我是否需要將更多此功能轉移到app.js文件,並以某種方式在客戶端使用創建的變量(現在包含data.json中的所有數據)?如果是這樣,我該怎麼做?我很欣賞這是一個廣泛的問題 - 我不一定需要完整的代碼來提供解決方案(如果這很費勁);關於在哪裏看,以及我應該如何做這件事的指針會有幫助。當我知道去哪裏看時,我很樂意做自己的研究 - 現在,我不知道。

任何幫助,非常感謝。謝謝。

回答

1

使用GET而不是POST請求來獲取靜態數據。您正在獲取404,因爲您的快速應用程序不處理請求的網址的發佈請求。

如果你想爲動態數據,你可以做到以下幾點:

app.post('/data.json', function(req, res) { 
    var data = {}; 
    data.something = 'whatever'; 
    res.json(data); 
}); 
相關問題