【问题标题】:express js routes: displaying a user input in an ejs pageexpress js 路由:在 ejs 页面中显示用户输入
【发布时间】:2018-05-06 22:56:17
【问题描述】:

如何使用 express js 显示输入搜索的结果?

我已经定义了 2 条路线:

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

那我调用这条路由来显示搜索结果:

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

});

在我的 index.ejs 中,我有:

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

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

 <%= search %>
 </div>

我收到错误:未定义搜索。

如果我将第二条路线更改为:

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

搜索结果成功返回但发送到控制台。所以我知道我的 ajax 调用(在单独的 scripts.js 中)工作正常。

【问题讨论】:

    标签: express input routes ejs


    【解决方案1】:

    对于那些有同样问题的人,我找到了解决方案。 首先,我必须将视图引擎更改为 PUG(但这实际上并不重要)。然后我更改了发送表单的脚本:

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

    为了显示输入数据,我添加了最后一行: $('#results').html(数据);

    然后在app.js中我修改路由如下:

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

    现在,当我转到 3000 端口并输入一个单词时,它会显示在同一页面上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 2012-02-10
      相关资源
      最近更新 更多