。Net.createConnection为什么在浏览器上不起作用,以及如何解决此问题?

问题描述 投票:0回答:1

我正在尝试与我的Web应用程序建立数据库连接(我正在使用XAMPP-phpmyadmin)。

在这个里程碑中,我第一次遇到Node.js,并设法通过使用require()使browserify函数正常工作。这是我的JavaScript文件,当单击register.php上的“注册”按钮时执行。

var mysql = require('mysql');

var thisUser = mysql.createConnection({
    host: "localhost",
    user: "admin1",
    password: "password",
    database: "db_mymindmapper"
});


------------- WORKS UNTIL HERE -------------

thisUser.connect(function(error){
    if(!error) {

        alert("NODE CONNECTED TO MYSQL SERVER");
        var sql = "INSERT INTO student_demographics (first_name) VALUES ('YOU DID IT MF')";

        thisUser.query(sql, function(err, result) {
            if(!err){
                alert("result = " + result);

            }else{
                throw err;
            }
        });

    }else{
        throw error;
    }
});

[当我使用register.php文件在浏览器中运行此命令时,在控制台上出现以下错误:

Uncaught TypeError: Net.createConnection is not a function
    at Connection.connect (bundle.js:34538)
    at HTMLInputElement.check_Register (bundle.js:43660)
connect @ bundle.js:34538
check_Register @ bundle.js:43660

但是,当我使用node signUp.js在CMD中运行此程序时,效果很好,并且数据进入了phpmyadmin上的表。

我知道这是由于所提供的question中的原因造成的:

我的问题:

是否有可能在浏览器上运行此方法,以便访问register.php站点的用户可以注册?我需要更改代码的整个结构吗?我需要require('http')来设置Node.js服务器吗?

我正在尝试与我的Web应用程序建立数据库连接(我正在使用XAMPP-phpmyadmin)。在这个里程碑中,我第一次遇到Node.js,并设法使require()...

因此,为了回答我自己的问题,我确实通过创建一个node.js服务器来解决了这个问题。为此,我在Visual Studio Code中使用了终端(CMD也将起作用)。

cd directoryOfTheApplication //(change the directory of the terminal) npm init //(creates a package.json file within directory of the application) npm install express //(modifies the package.json and add modules within node-modules folder)

在目录中创建一个新的.js文件(我叫我的server.js)。

//USE `nodemon scripts/server.js` on Terminal to autosave the server files. //My modules const express = require("express"); const morgan = require("morgan"); //GET INFORMATION ABOUT THE SERVER REQUESTS (OS, Browser,time, ...) const mysql = require("mysql"); const app = express(); app.use(morgan('combined')); //'short', 'combined' app.get("/users/:id", (req, res) => { const userID = req.params.id; console.log("Fetching user with id : " + userID); //get data from DB const connection = mysql.createConnection({ host: "localhost", user: "admin1", password: "secret", database: "myDB" }); let sql = "SELECT * FROM student_demographics WHERE id =?"; connection.query(sql, [userID], (err, rows, fields) => { console.log("Fetching users was successful"); res.json(rows); }); //res.end(); }); app.get("/", (req, res)=>{ console.log("responding to root route"); res.send("hello world from root"); }); app.get("/users", (req, res)=>{ const user1 = { firstName: "name1", lastName: "name2" }; const user2 = { firstName: "name3", lastName: "name4" }; res.json([user1, user2]); }); app.listen(81, ()=>{ console.log("Server running on port 81"); });

再次在终端中,您可能希望安装nodemon,这样就不必手动启动服务器。保存文件时将刷新并更新服务器(在这种情况下为server.js)。 morgan还将基本上收集有关用户请求的信息。在终端中,它看起来像这样:

PS C:\inetpub\wwwroot\mymindmapper> nodemon scripts/server.js [nodemon] 2.0.4 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node scripts/server.js` Server running on port 81 Fetching user with id : 1 Fetching users was successful ::1 - - [14/Jun/2020:11:15:20 +0000] "GET /users/1 HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"

另一个模块mysql是为了本示例,但是我想它可以与任何模块一起使用。我基本上遵循了这个杰出人物在YouTube上的教程。

设置快递:NodeJS REST API: Super Simple Setup - Express & NPM (Ep1)

设置数据库:NodeJS REST API: Connecting to MySQL (Ep 2)

javascript mysql node.js phpmyadmin connect
1个回答
0
投票
因此,为了回答我自己的问题,我确实通过创建一个node.js服务器来解决了这个问题。为此,我在Visual Studio Code中使用了终端(CMD也将起作用)。
© www.soinside.com 2019 - 2024. All rights reserved.