如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称获取特定用户(字段),而不仅仅是通过 ID

Posted

技术标签:

【中文标题】如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称获取特定用户(字段),而不仅仅是通过 ID【英文标题】:How to query a mysql database with Node.js to get specific users (fields) by name in url, not only by ID 【发布时间】:2019-11-04 20:49:00 【问题描述】:

我知道如何使用 Node.js 查询 SQLite 数据库以返回具有相应字段信息的特定键,但我无法在 mysql 中找到正确的语法。

我想在 url 中输入一个特定的电台名称,例如并从数据库中获取其所有信息。例子。 http://localhost:5000/station/

数据库结果将是:

[“车站”:“温顿”,“位置”:“拜尔斯巷123号”,“物业规模”:“3000”]

      <sqlite> needs to be put in <mysql>

      app.get('station/:stationid', req, res) => 
      const stationToLookup = req.params.stationid;
      db.all (
         'SELECT * FROM stores WHERE station = $station',
          
          $station = stationToLookup
          ,

           (err, rows) => 
               console.log(rows);
               if (rows.length > 0)
                   res.send (rows[0]);
               else
               res.send();
            
           );
          );

【问题讨论】:

你在使用任何 ORM 吗? 对不起,我不熟悉 ORM 这个词......这是什么意思? @SonuBamniya ORM 代表对象关系模型。你可以使用sequalize,npmjs.com/package/sequelize 【参考方案1】:

这似乎是一个解决方案.....@James @SonuBamniya

//(2)获取所有电台名称 app.get('/stationNames/:stationid',(req,res)=>

const nameToLookup = req.params.stationid;

//console.log(nameToLookup);

db.query('SELECT * FROM stores WHERE station = ?', [nameToLookup],(err, rows, fields)=>

如果(!错误) res.send(行); 别的 控制台日志(错误); ) );

【讨论】:

【参考方案2】:

你应该先通过 npm 安装 mysql 驱动。 npm install mysql

var mysql = require('mysql');

var con = mysql.createConnection(
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
);
app.get('station/:stationid', req, res) => 
  con.connect(function(err) 
    if (err) throw err;
    con.query("SELECT * FROM stores WHERE station ='" + req.params.stationid + "'", function (err, result) 
      if (err) throw err;
      console.log(result);
    );
  );

NOTE 如何在上面的代码中使用双引号和单引号。查询在 双引号 内,然后我们要查找的字段的值介于 single qoutes 之间,嵌入在 = 符号之后的双引号内。

【讨论】:

@James.....我在 node 中安装了 mysql,但是,我想使用 app.get 函数,所以我可以输入一个 url......我应该使用什么 url使用? 再次查看上面的代码我已经更新了!我希望它对你有帮助。使用req.params.stationid访问url中的stationid。 @James ......我们俩的想法都一样......我在发布一个我工作过的解决方案后才看到你的解决方案......两者都是一样的...... ....谢谢.....

以上是关于如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称获取特定用户(字段),而不仅仅是通过 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 查询 mysql 数据库以通过 url 中的名称获取特定用户(字段),而不仅仅是通过 ID

如何在使用 mysql npm 的查询中将 *array of objects* 从 MySQL 返回到 Node js 服务器?

node.js 同步 mysql 查询

Socket.io、Node.js:如何在 javascript.js 中将 javascript 变量传递给 mysql 查询?

如何在node.js中将json数组数据插入mysql?

如何读取真正大的 JSON 文件并使用 node.js 将该文件的数据插入 MYSQL 数据库?