我正在尝试与我的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()...
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)