[英]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.