javascript - 实现搜索功能 Node JS/MySQL

标签 javascript mysql node.js

在我的 Node JS/MySQL 数据库上通过 Pokemon 名称正确实现搜索过滤器时遇到一些问题。当我搜索时,我收到“search/?key=undefined 404 (Not Found)”任何想法?这是我的搜索路线

 router.get('/search', function(req, res){
        var mysql =  req.app.get('mysql');
        var sql='SELECT pokemonname FROM pokemon WHERE pokemonname LIKE "%' + req.key.query + '%';
        sql = mysql.pool.query(sql, function(error, results, fields) {
                if(error) {
                   res.write(JSON.stringify(error));
                   res.end();
                } else {
                        res.status(200);
                        res.end();
        }
   });
});

这是我用来呈现搜索栏/搜索按钮的 handlebars 文件

<table id="table">
    <thead>
        <th>Pokemon Name   </th>
        <th>Evolution Level   </th>
        <th>Move Name   </th>
    </thead>
    <input type="text" class="search form-control" id="searchinput" placeholder="Pokemon Name">
    <input type="button" class="btn btn-primary" value="Search" onclick="getUsers({{id}})"/>
        <br>
    <tbody>
        {{#each pokemon}}
        <tr>
            <td>{{pokemonname}}</td>
            <td>{{evolutionlevel}}</td>
            <td>{{movename}}</td>
            <td><button onclick="deletePokemon({{id}})">Delete</td>
        <td><a href="/pokemon/{{id}}">Update</a></td>
        </tr>
        {{/each}}
    </tbody>

最后是 JQuery 中的 search.js 函数

function getUsers(searchinput){
        $.ajax({
                type: 'GET',
                url: '/search/?key=' + searchinput,
                success: function(result){
                        window.location.reload(true);
                }
        })
};

感谢帮助

最佳答案

{{id}} 的大多数出现都在 #each 循环中使用,表明 idpokemon 的属性> 对象。同时,您的 getUser({{id}}) 在此循环之外使用,导致 undefined 传递给绑定(bind)变量 id。我认为您想将文本输入的值传递给 getUser 函数,因此您的形式参数名称例如搜索输入。您可以使用 Ember helper 中的 {{input value=searchinput}},然后在您的按钮中使用 getUser({{searchinput}})。还要注意传递给调用的 AJAX 服务的 encoding query params

关于javascript - 实现搜索功能 Node JS/MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47439195/

相关文章:

java - 如何计算java中两个日期之间的准确月份差异

MySQL游标循环中的语法错误

mysql - 在类似 mysql 的查询中使用撇号搜索记录

javascript - 在 JavaScript 中对数组索引执行架构验证

JavaScript 将对象添加到数组并进行迭代

javascript - javascript 中的函数式编程 - add(a)(b)(c)

javascript - 在 PaperJS 中,围绕点旋转形状无法正常工作

javascript - 为什么我的变量的更改在此函数之外不可见?

JavaScript 异步返回 'then not defined'

node.js - 在 Ubuntu Server 20.04LTS 上全局安装 PM2 出错