node.js mysql连接仅在使用命令提示符执行时工作

eivgtgni  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(306)

我还是node.js的新手,所以如果这个问题很愚蠢,我会提前道歉。
首先,我尝试用命令提示符执行test.js
康涅狄格州

var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'tgs'
});

connection.connect(function(err) {
if (err) throw err;
});

module.exports = connection;

测试.js

function testconnect()
{
  var conn = require('./conn');
  var sql = "INSERT INTO chat_line (line_text) VALUES ('test')";
  conn.query(sql, function (err, result) {
  if (err) throw err;
  });
}
testconnect();

在命令提示符中

D:\xampp\htdocs\TGS\>node test.js

它成功了,我确实在数据库中得到了输入。之后,我想尝试在我的系统中实现它,所以我尝试在php中执行它
测试.php

<script>
function testalert()
{
  alert("alert1");
  var conn = require('./conn');
  var sql = "INSERT INTO chat_line (line_text) VALUES ('test')";
  conn.query(sql, function (err, result) {
  if (err) throw err;
  });
  alert("alert2");
}
</script>

<input type="button" onclick="testalert();">

但它不起作用。单击按钮后,第一个警报确实弹出,但第二个警报没有弹出,而且我的数据库中没有输入。

xqnpmsa8

xqnpmsa81#

js和php是不同的技术,你不能直接在另一种技术中使用它们,如果你想与另一种技术交互,你需要一些中介,比如api,队列,数据库等等。
试着理解nodejs是如何工作的,在第一行有一个mysql库的依赖关系,它是一个帮助处理数据库的中间件
var mysql=require('mysql');
上面这一行只能在nodejs环境下工作,如果您想在php中使用它,那么php中会有其他库来做同样的事情(我不是php的家伙,所以这里不能帮助您使用理想的库),并且您的示例完全不需要nodejs。
如果我说清楚了一定要告诉我。

相关问题