Node.js mysql连接仅在通过命令提示符执行时有效

时间:2019-01-09 11:11:01

标签: javascript mysql node.js node-modules

我仍然对node.js还是陌生的,所以如果这个问题很愚蠢,我会提前道歉。

首先,我尝试通过命令提示符执行test.js

conn.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;

test.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中执行此操作

testing.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();">

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

1 个答案:

答案 0 :(得分:0)

Node.js和PHP是不同的技术,如果要相互交互,则不能直接使用彼此。您需要某种中介程序(例如API,队列,数据库等)。

试图了解nodeJs的工作原理,第一行有一个mysql库的依赖项,这是一个帮助处理数据库的中间件

var mysql = require('mysql');

以上代码行只能在nodeJs环境中工作,如果您想在PHP中使用它,那么PHP中还会有其他库来做同样的事情(我不是PHP专家,所以在这里不能帮助理想的库),您不会您的示例完全需要nodeJS。

请告诉我是否清楚。