0

私は node.js 開発の初心者で、特定の問題があります。ユーザーが要求データを送信し、imdb api からデータを取得して同じページに表示する node.js を使用して、1 ページの Web アプリを作成したいと考えています。私のコードは次のとおりです

サーバー.js

#!/usr/bin/env node
var express = require('express');
var app = express();

app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});

var fs = require('fs');
var inputFile = fs.readFileSync('index.html').toString();
console.log(inputFile);

app.get('/', function(request, response) {
    response.send(inputFile);
});

var port = process.env.PORT || 8080;
app.listen(port, function() {
    console.log("Listening on " + port);
})




app.post('/', function(req, res){
if (req.body.mysearch == ""){
var search = "heroes";

}else{
    var search = req.body.mysearch;
}
    console.log(search);
    var http = require('http');
    http.get("http://www.imdbapi.com/?t=" + search, function(res) {
        console.log("Got response: " + res.statusCode);
        var data = '';

        res.on('data', function (chunk){
        data += chunk;
})
res.on('end',function(){
    // the whole of webpage data has been collected. parsing time!
        var obj = JSON.parse(data);
        console.log( obj.Title );

   })
}).on('error', function(e) {
  console.log("Got error: " + e.message);
})
});

index.html

        <html>
    <head>
        <meta charset="utf-8">
        <title>Title of the document</title>
    </head>

        <body>
            <form id="myform" method="post" action="/"enctype="application/x-www-form-urlencoded">
<input type="text" id="search" name="mysearch">
<input type="submit" id="mysubmit" value="Search IMDB">
            </form>
            <div id="myTitle">
            </div>
        </body>
    </html>

これまでのコードは、imdb からのデータを正常に解析し、コンソールに表示しています。問題は、ページをリロードせずにWebページ(divタグなど)に印刷する方法(ajax)です。

4

1 に答える 1

1

答えられたdivの再レンダリングに関して同様の質問がありました

How-to-re-render-html-div-in-node-js

基本的な解決策は、Angular.jsなどのクライアント側フレームワークを使用して、双方向データ バインディングによる再レンダリングを支援することでした。

于 2013-12-30T04:52:16.980 に答える