【问题标题】:Using MySQL with Javascript (node.js)使用带有 Javascript 的 MySQL (node.js)
【发布时间】:2021-07-02 18:20:02
【问题描述】:

我刚刚开始学习 Node.js。我来自 PHP 背景,所以我从 MySQL 开始。 所以,我想尝试使用 javaScript 执行一些基本的 MySQL 查询。我用这种方式编写查询:

filename: test.js

var mysql = require('mysql');
var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "test",
});
con.connect(err => {
  if (err) throw err;
  console.log("Connected!");
  const q = "INSERT INTO testing VALUES(3, 'MILLENNIAL', 19, 'STUDENT', 'CSE')";
  con.query(q, (err, result) => {
    if (err) throw err;
    console.log("done");
  });
});

当我以这种方式运行唯一的 javascript 文件时:node test.js 查询被执行,但是当我将同一个文件连接到 html 文件时,这种方式:

<script src="test.js"></script>

查询没有被执行...它在控制台中出现错误:Uncaught ReferenceError: require is not defined

我觉得我在这里没有使用非常重要的东西。我错过了什么吗?请帮助我更进一步。

如果这很愚蠢,我很抱歉,但是请帮助我。提前谢谢你。

【问题讨论】:

  • 最重要的是:浏览器中没有mysql
  • 数据库连接应该只在你的后端。 Html 文件适用于您的前端。您的用户应该不能直接连接到数据库
  • requirejs.org您可以按照文档中提到的步骤进行操作!

标签: javascript mysql sql node.js


【解决方案1】:

node.js 是使用 javascript 语法的 javascript 运行时,用于服务器端语言。您尝试的是在前端使用 nodejs 脚本。 require 未定义 - 因为它仅适用于节点,要在纯 javascript 中使用其他模块,您将需要使用 cdn 或 browserify、webpack 等包。如果您有兴趣,请查看文档。

【讨论】:

    【解决方案2】:

    我会尝试从 PHP 的角度来解释。

    当您编写 PHP 时,通常生成的文件是 HTML,并且您将 PHP 代码嵌入其中,因此它在没有 PHP 的情况下呈现给请求浏览器。

    在节点中,这是不同的。我们不会编写嵌入节点代码的 HTML。 Node 更侧重于后端和前端的分离。你写你的后端来回复你的前端。

    后端是你输入var mysql = require('mysql');的地方

    您可以使用 express 与 koa 之类的东西将结果查询提供给前端。

    这是一个很好的入门教程https://geshan.com.np/blog/2020/11/nodejs-mysql-tutorial/ 我通常推荐 Koa,因为它现在更新更频繁,但 express 基本上是一样的!

    希望这会指引你朝着正确的方向前进。

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2014-07-20
      • 2021-04-02
      • 2020-01-22
      • 2020-03-25
      • 2012-09-13
      • 2017-07-07
      • 2014-07-24
      • 2017-02-10
      相关资源
      最近更新 更多