一.Node.js应用
介绍:简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。
Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。
先了解下 Node.js 应用是由哪几部分组成的:
- 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
- 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
- 接收请求与响应请求: 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
创建Node.js应用:
步骤一:引入 required 模块
我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:
let http = require("http");
步骤二:创建服务器
接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 3000 端口。 函数通过 request, response 参数来接收和响应数据。
实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:
// 1.引入http模块
let http = require("http");
//2.创建服务
let server = http.createServer((request,response)=>{
response.end("hello world 2022")
})
//3.监听3000端口
server.listen(3000)
console.log("服务器已经启动,3000");
以上代码我们完成了一个可以工作的 HTTP 服务器。
使用 node 命令执行以上的代码:
$ node server.js
接下来,打开浏览器访问localhost:3000/,就会看到一个写着“hello world 2022”的网页。
二.Node.js 原生连接 MySQL
因为node没有内置mysql模块,需要利用npm下载之后再引入,输入命令行:$ npm install mysql
,或者利用国内的cnpm(淘宝镜像,官网地址:https://npmmirror.com/)下载,输入命令行:$ npm install -g cnpm --registry=https://registry.npmmirror.com
。
js文件代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost', //地址:默认本地
user : 'root', //用户名
password : '***', //密码
port: '3306', //端口,默认3306,可以不写
database: 'web' //数据库名
});
connection.connect();
三.数据库操作
1.查询数据(查)
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '***',
port: '3306',
database: 'web'
});
connection.connect();
var sql = 'select * from person'; //person是表名
//查 SELECT * FROM `web50` WHERE 1
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
console.log('------------------------------------------------------------\n\n');
});
connection.end();
创建服务器,连接mysql数据库,进行查询数据操作:
let http = require("http");
let mysql = require("mysql");
let server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'text/html; charset=utf-8') //处理中文乱码问题
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '***',
database: 'web'
});
connection.connect();
var sql = 'select * from person'; //person是表名
//查 SELECT * FROM `web50` WHERE 1
connection.query(sql, function (err, result) {
if (err) {
console.log('[SELECT ERROR] - ', err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
console.log(result);
res.end(JSON.stringify(result))
console.log('------------------------------------------------------------\n\n');
});
connection.end();
})
server.listen("3001", () => {
console.log("服务器3001已启动");
})
打印结果为:
--------------------------SELECT----------------------------
[
RowDataPacket {
id: 1,
name: '张三',
sex: '男',
age: 18,
phone: '18791864949'
},
RowDataPacket {
id: 2,
name: '李四',
sex: '女',
age: 22,
phone: '15287884567'
},
RowDataPacket {
id: 3,
name: '小明',
sex: '女',
age: 20,
phone: '15287884568'
},
RowDataPacket {
id: 4,
name: '杨帆',
sex: '男',
age: 21,
phone: '12213324365'
},
RowDataPacket {
id: 5,
name: '蒋云龙',
sex: '男',
age: 20,
phone: '14234252466'
},
RowDataPacket {
id: 6,
name: '贺润宁',
sex: '男',
age: 20,
phone: '14235435687'
}
]
------------------------------------------------------------
3.插入数据(增)
SQL语句:INSERT INTO person (id, name, phone) VALUES (NULL, '王五', '18220550308');
4.删除数据(删)
SQL语句: let sql = DELETE FROM person WHERE name = "王五";
5.更新数据(改)
SQL语句:let sql = UPDATE person SET name = "狗蛋" WHERE id = 5;
在实际应用中,可以将调用数据库接口的代码封装到一个js文件中,从而简化了写数据库操作的代码。
db.js代码如下:
const mysql = require('mysql');
module.exports = (sql, callback) => {
const db = mysql.createConnection({
host : 'localhost',
user : 'user', //用户名
password : '***', //密码
database : 'web' //数据库名
});
db.connect();
db.query(sql, callback);
db.end();
};
然后在需要使用时引入该文件:let db = require("./db");