2012-04-24 21 views
0

我正在使用Express來構建Node.js上的應用程序,該應用程序顯示數據庫中的圖像。從外部js.file傳遞數組到路由

現在我正在從顯示的圖像創建相冊的功能,這是通過點擊圖像完成的。圖像的id和名稱然後被推入外部js文件中的數組中。當用戶完成將圖像添加到相冊時,他點擊一個按鈕(在一個表單內),該按鈕被一條路線處理。

問題是如何訪問路由中的外部js文件內的數組?它甚至有可能嗎?

在此先感謝!

UPDATE:

我試圖實現@andy s solution但我在控制檯得到404。我想我在這裏做錯了什麼?

external.js(包含在HTML文件的標頭):

$('#saveAlbum').click(function(){   
    $.post('http://localhost:3000/createAlbum', { arr: ['val1', 'val2'] }) 
}); 

albumController.js:

app.post('/createAlbum', function(req, res) { 
    console.log(req.body.arr); 
}); 

回答

1

,如果你需要傳遞來自客戶端的數據來表達,你可以使用jQuery的$ .post()將其發送到特殊路由:

var express = require('express'); 
var app = express.createServer(); 

app.configure(function(){ 
    app.use(express.bodyParser()); 
}); 

app.post('/for_receive_array', function(req, res) { 
    //req.body - body passes your array 
}); 

app.listen(8000); 

對不起,如果我不明白你的目的。最好是看你的代碼。

+0

是的,這正是我想要的。我會檢查出來的,謝謝! – holyredbeard 2012-04-25 08:14:31

+0

我試過了,但我沒有得到它的工作。 $ .post()代碼應該如何能夠發送到路由? – holyredbeard 2012-04-25 13:58:11

+0

例如'$ .post('http:// localhost:8000/for_receive_array',{arr:['val1','val2']})'。在服務器上訪問它:'req.body.arr'。不要忘記服務器上的'app.listen(PORT)'。我已將它添加到上面的答案 – akaravashkin 2012-04-25 14:40:36

相關問題