2017-11-23 10 views
0

express jで入力検索の結果を表示するにはどうすればよいですか?express js routes:ユーザー入力をejsページに表示

私は2つのルートに定義した:その後、私は、検索の結果を表示するには、このルートを呼んでいる

app.get('/', function(req, res){ 
res.render('index',{ 
title: "Bilingual Dictionary" 
    }); 
}); 

を:私のindex.ejsで

app.post('/word', function(req, res){ 
var search= req.body.name; 
res.render('index', { 
title: "Bilingual Dictionary", 
search: search 
    }); 

}); 

、私が持っている:

<h1><%= title %></h1> 

<form id="create-form"> 
    <input type="text" id="create-input"> 
    <button>Search</button> 
</form> 
<div> 

<%= search %> 
</div> 

検索が定義されていません。

私は2番目のルートを変更した場合:

app.post('/word', function(req, res){ 
res.send(search) 
}); 

検索結果が正常に返さなく、コンソールに送信されます。だから私は、別のscripts.jsで私のajax呼び出しがうまく動作することを知っている。

答えて

0

同じ問題を抱えている人には、私は解決策を見つけました。 まず、ビューエンジンをPUGに変更しなければなりませんでした(ただし、実際には重要ではありません)。 。そして、私は、フォームを送信するスクリプトに変更:入力データが表示するためには

$(function(){ 
$('form').submit(function(event){ 
    event.preventDefault(); 
var parameters = { search: $('#searchbox').val() }; 
    $.get('/searching',parameters, function(data) { 
    console.log(data); 
    $('#results').html(data); 
    }); 
    }); 
    }); 

を、私は最後の行を追加: $(「#結果」)HTML(データを)。次のように

はその後app.jsに私はルートを変更:私はポート3000にアクセスして、単語を入力するとき

app.get('/searching', function(req, res){ 
var val = req.query.search; 
res.send(val); 

は今、それが同じページ上に表示されます。

関連する問題