Javascript 如何在jsrestfulapi中使用LIKE-SQL查询?

Javascript 如何在jsrestfulapi中使用LIKE-SQL查询?,javascript,mysql,Javascript,Mysql,正在尝试使用JS对mySQL进行搜索查询 工作代码: searchRestaurants(request, respond){ var term = request.params.id var sql = "SELECT restaurant FROM restaurant_details WHERE restaurant LIKE '%' ? '%'"; db.query(sql, term, function(error, result

正在尝试使用JS对mySQL进行搜索查询

工作代码:

    searchRestaurants(request, respond){
        var term = request.params.id
        var sql = "SELECT restaurant FROM restaurant_details WHERE restaurant LIKE '%' ? '%'";
        db.query(sql, term, function(error, result){
            if(error){
                throw error;
            }
            else{
                respond.json(result);
            }
        });
    }
这是我的密码:(旧)

Id是通过url的用户输入接收的

"use strict"

const restaurantdb = require("../models/RestaurantDB");

var restaurantDBObject = new restaurantdb();

function routeRestaurants(app){
    app.route("/restaurant")
        .get(restaurantDBObject.getAllRestaurants);
    app.route("/restaurant/:id")
        .get(restaurantDBObject.searchRestaurants)
}

module.exports = {routeRestaurants};
所以,当我尝试去“localhost:8080/restaurant/way”搜索Subway时,它什么也没有返回。只是一个“[]”。 正确的方法是什么?提前谢谢

这里有一个有效的例子

    addReview(request, respond) {
        var now = new Date();
        var reviewObject = new Review(null, request.body.restaurant, request.body.rating, request.body.comment,
            request.body.username, now.toString());
        var sql = "INSERT INTO reviews (restaurant, rating, comment, username, timestamp) VALUES(?,?,?,?,?)";

        var values = [reviewObject.getRestaurant(), reviewObject.getRating(),
        reviewObject.getComment(), reviewObject.getUsername(), reviewObject.getTimestamp()];

        db.query(sql, values, function (error, result) {
            if (error) {
                throw error;
            }
            else {
                respond.json(result);
            }
        });
    }
数据库连接

var mysql = require("mysql");
var connection = mysql.createPool({
    host:"localhost",
    port:"3306",
    user:"root",
    password:"",
    database:"project"
});
module.exports = connection;

您的问题的答案完全取决于您在nodejs中使用的mysql模块。您能在您的问题中提供这些信息吗?
中的“%?%”作为文字问号而不是参数占位符处理。您还定义了
,并且从不使用它。我怀疑您只需要在语法方面更加小心。@Ávelynela我可能正在使用RESTFUL api,但不确定您是否在问这个问题。@ÁlvaroGonzález我添加了一个工作示例,其中?s被values变量替换。这就是我用这句话想要达到的目的。你知道正确的语法吗?谢谢。请注意引用
不同于
'?'
,就像
null
不同于
'null'
一样,
餐厅
不同于
'restaurant'
。您的问题的答案完全取决于您在nodejs中使用的mysql模块。您能在您的问题中提供这些信息吗?
中的“%?%”作为文字问号而不是参数占位符处理。您还定义了
,并且从不使用它。我怀疑您只需要在语法方面更加小心。@Ávelynela我可能正在使用RESTFUL api,但不确定您是否在问这个问题。@ÁlvaroGonzález我添加了一个工作示例,其中?s被values变量替换。这就是我用这句话想要达到的目的。你知道正确的语法吗?谢谢。请注意引用
不同于
“?”
,就像
null
不同于
“null”
一样,
餐厅
不同于
餐厅
var mysql = require("mysql");
var connection = mysql.createPool({
    host:"localhost",
    port:"3306",
    user:"root",
    password:"",
    database:"project"
});
module.exports = connection;