2012-04-24 17 views
0

私はNode.js上に構築され、データベースの画像を表示するExpressで動作しています。外部のjs.fileからルートへの配列の受け渡し

今は画像をクリックして表示される画像からアルバムを作成する機能に取り組んでいます。イメージIDと名前は、外部のjsファイルの配列にプッシュされます。ユーザーがアルバムに画像を追加すると、ボタンがクリックされ(フォーム内で)、thebがルートで処理されます。

質問はどうやってルート内の外部jsファイル内の配列にアクセスできますか?それも可能ですか?

ありがとうございます!

UPDATEは:

私は@andy s solutionを実装しようとしましたが、私は、コンソールで404を取得します。私はここで何か間違っていると思いますか? (htmlファイルのヘッダに含まれる)

external.js:

$('#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

+0

私はそれを試してみましたが、うまく動作しません。ルートに送ることができるように$ .post()コードはどのように見えるのですか? – holyredbeard

+0

たとえば、 '$ .post( 'http:// localhost:8000/for_receive_array'、{arr:['val1'、 'val2']})'となります。サーバ上でそれにアクセスする: 'req.body.arr'。サーバー上で 'app.listen(PORT)'を忘れないでください。私は上記の答えでそれを追加しました – akaravashkin

関連する問題