繁体   English   中英

Node.js 和 MySQL 连接问题

[英]Problems with Node.js and MySQL Connection

我想创建自己的网站,因此开始学习 JS。 我想创建一个名为 Greet 的按钮,onclick 显示有多少人向我打招呼(也就是点击了多少次)。 使用 Java 很容易做到这一点,但我在与 Node.js 建立连接时遇到问题。

这是我用来连接到我的数据库的代码:

var mysql = requirejs(['../node_modules/mysql'], function (mysql) {

});
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : '*********',
    password : '*********',
    database : 'logindb'
});

connection.connect();

我不太清楚 RequireJS 应该如何帮助我,我只是不断地从我的浏览器中收到错误,即未安装 require.js,所以我安装了它。 我使用 WebStorm 作为 IDE 和 Firefox 79(最新版本)作为浏览器。

到目前为止,我已经尝试使用定义 function,它也没有被识别。 我也试图从 RequireJs 文档中理解一些东西,但这并没有帮助。

我在 home.html 中引用 require.js 文件的方式是: <script data-main="../js/logicForBackbone.js" src="../js/require.js"></script>

我得到的错误是:

Uncaught TypeError: mysql.createConnection is not a function
    <anonymous> Backbone
logicForBackbone.js:20:24
    <anonymous> Backbone
Uncaught TypeError: mysql.createConnection is not a function
    <anonymous> Backbone
logicForBackbone.js:20:24
GEThttp://localhost:63342/mywebsite/node_modules/mysql.js
[HTTP/1.1 404 Not Found 8ms]

The resource from “http://localhost:63342/mywebsite/node_modules/mysql.js” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
backBone.html
Loading failed for the <script> with source “http://localhost:63342/mywebsite/node_modules/mysql.js”. backBone.html:1:1
Uncaught Error: Script error for "../node_modules/mysql"
https://requirejs.org/docs/errors.html#scripterror
    makeError http://localhost:63342/mywebsite/js/require.js:5
    onScriptError http://localhost:63342/mywebsite/js/require.js:5
    load http://localhost:63342/mywebsite/js/require.js:5
    load http://localhost:63342/mywebsite/js/require.js:5
    load http://localhost:63342/mywebsite/js/require.js:5
    fetch http://localhost:63342/mywebsite/js/require.js:5
    check http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    bind http://localhost:63342/mywebsite/js/require.js:5
    each http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    init http://localhost:63342/mywebsite/js/require.js:5
    s http://localhost:63342/mywebsite/js/require.js:5
    setTimeout handler*req.nextTick< http://localhost:63342/mywebsite/js/require.js:5
    s http://localhost:63342/mywebsite/js/require.js:5
    requirejs http://localhost:63342/mywebsite/js/require.js:5
    <anonymous> Backbone
require.js:5:1795
    makeError http://localhost:63342/mywebsite/js/require.js:5
    onScriptError http://localhost:63342/mywebsite/js/require.js:5
    (Async: EventListener.handleEvent)
    load http://localhost:63342/mywebsite/js/require.js:5
    load http://localhost:63342/mywebsite/js/require.js:5
    load http://localhost:63342/mywebsite/js/require.js:5
    fetch http://localhost:63342/mywebsite/js/require.js:5
    check http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    bind http://localhost:63342/mywebsite/js/require.js:5
    each http://localhost:63342/mywebsite/js/require.js:5
    enable http://localhost:63342/mywebsite/js/require.js:5
    init http://localhost:63342/mywebsite/js/require.js:5
    s http://localhost:63342/mywebsite/js/require.js:5
    (Async: setTimeout handler)
    nextTick http://localhost:63342/mywebsite/js/require.js:5
    s http://localhost:63342/mywebsite/js/require.js:5
    requirejs http://localhost:63342/mywebsite/js/require.js:5
    <anonymous> Backbone

错误行是上面代码的一部分

提前致谢

在我看来,您正在尝试从您在浏览器中运行的 Javascript 加载'../node_modules/mysql' 你不能那样做™。

当您使用 nodejs 时,您在服务器和浏览器中都运行 Javascript。 但是Javascript这两种口味各有千秋,重要的是要保持正直。 (当您使用 Java 而不是 Javascript 开发 web 应用程序时,由于它们是两种不同的语言,因此更容易保持直截了当。)

要在服务器 Javascript(nodejs Javascript)中加载 npm 模块(如mysql ),请执行以下操作:

mysql = require('mysql')

nodejs 知道在node_modules中查找类似的模块。 然后,您使用 express 或其他一些 Web 服务器框架来构建 web 服务器以将信息传递到用户的浏览器。 (快递填写类似function到spring或jsf服务器世界.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM