1.认识Nodejs
Nodejs是一个应用编程平台,能运行javascript语言编写的代码,提供了javascript运行环境,
基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
提供了大量应用编程接口API,在处理http网络、数据库、文件等操作时非常方便.
2.创建web服务器
1.创建一个服务
要开启先要创建—个服务
const http = require( " http" )
//创建—个服务
//这个服务默认监听http 协议//这个服务默认监听Localhost域名
//返回值就是这个服务
const server = http.createServer(function (request,response) {
//前端发来的每—个请求都会触发这个西数
// request包含着所有的请求信息
// response是所有的响应信息
})
2.监听一个端口
确定这个服务监听哪一个端口
const http = require( " http ' )
//创建—个服务
const server = http.createServer(function (request,response){
//前端发来的每—个请求都会触发这个函数
})
server.listen(8080,function (){
//这个函数会在服务开启成功以后执行
console.log( 'listening on port 808o')
})
3.给出一个响应
简单给出—个响应
const http = require( " http ')
//创建—个服务
const server = http.createServer(function (request,response) {
//前端发来的每—个请求都会触发这个函数
//接受到请求以后给出—个响应
response.end( " hello wor1d ")
}
server.listen(8080,function (){
//这个西数会在服务开启成功以后执行
console.log( 'lintening on port 8080")
})
此时,打开浏览器
地址栏输入localhost:8080
浏览器就会响应文字hello world
4.获取url的参数
我们可以使用url.parse方法来解析URL中的参数,代码如下:实例
var http = require( ' http ');
var url = require( " url " );
var util = require( " util");
http.createServer(function(req,res){
res.writeHead (200,{'content-Type ': 'text/plain'});
//解析url参数
var params = url.parse(req.url, true).query;
res.write("网站名:" + params.name) ;
res.write("\n");
res.write("网站uRL:" + params.url) ;
res.end( );
}).listen(3000) ;
解决乱码问题
response.writeHead(200,{'content-type':'text/html;charset=utf-8'})
解决跨域问题
//解决跨域问题
response.setHeader( ' Access-Control-Allow-origin', '*')
3.数据库
数据库的数据类型
1.数值类型
| 类型 | 大小 | 用途 |
| ------ | ------ | ------ |
| TINYINT | 1 字节 | 小整数值 |
| SMALLINT | 2 字节 | 大整数值 |
| MEDIUMINT | 3 字节 | 大整数值 |
| INT或INTEGER | 4 字节 | 大整数值 |
| BIGINT | 8 字节 | 极大整数值 |
| FLOAT | 4 字节 | 单精度 浮点数值 |
| DOUBLE | 8 字节 | 双精度 浮点数值 |
| DECIMAL | | 小数值 |
2.日期和时间类型
| 类型 | 格式 | 用途 |
| ------ | ------ | ------ |
| DATE | YYYY-MM-DD | 日期值 |
| TIME | HH:MM:SS | 时间值或持续时间 |
| YEAR | YYYY | 年份值 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
| TIMESTAMP | YYYYMMDD HHMMSS | 时间戳 |
3.字符串类型
类型 | 大小 | 用途 |
| ------ | ------ | ------ |
| CHAR | 0-255字节 | 定长字符串 |
| VARCHAR | 0-65535 字节 | 变长字符串 |
| TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
| TINYTEXT | 0-255字节 | 短文本字符串 |
| BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
| TEXT | 0-65 535字节 | 长文本数据 |
| MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
| LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
| LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
查
SQL SELECT语句:用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。
SQL SELECT语法:
SELECT 列名1,列名2FROM表名称以及:
SELECT*FROM表名称
注释:SOL语句对大小写不敏感。SELECT等效于select。
增
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
改
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
删
DELETE FROM 表名称 WHERE 列名称 = 值
实例
let mysql = require("mysql");
//创建数据库连接对象
let connection = mysql.createConnection(
{
host:"localhost",
user:"root",
password:"b123",
database:"ex1db"
}
);
connection.connect(); //打开数据库连接
//执行sql查询
let sql =
"SELECT e_no,e_name,e_sex,dept_no,e_salary,e_job,hire_date FROM employee";
connection.query(sql,function(err,data){
if(err){
console.log("数据库操作出错"+err);
return;
}
console.log("姓名\t性别\t 薪酬\t工作" );
for(vari = 0; i<data.length; i++){
console.log(data[i].e_name +"\t"+ data[i].e_sex +"\t"+ data[i].e_salary+ "\t" + data[i].e_job );
}
});
connection.end(); //关闭数据库连接
结合http模块案例
const http = require('http') // 引入内置http模块
const mysql = require('mysql')
// 创建web服务器
let server = http.createServer(function (request, response) {
//==== 1. 接收请求====
// 解决跨域问题
response.setHeader('Access-Control-Allow-Origin', '*')
//解决中文乱码问题
response.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' })
//===== 2. 处理业务逻辑====
let path = request.url
if (path.indexOf('/login') !== -1) {
let loginStr = `
<h2>登录界面</h2>
<form>
<input type='text' name='username'/><br/>
<input type='password' name='password'/><br/>
<input type='submit' value='登录'/>
</form>
`
response.write(loginStr)
response.end() //结束写数据响应用已经写入的数据
} else if (path.indexOf('/list') !== -1) {
executeSql(function (result) {
console.log(result)
let tabeStr = JSON.stringify(result)
response.write(tabeStr)
response.end() //结束写数据响应用已经写入的数据
})
} else {
response.write('<h2>主界面</h2>')
response.end() //结束写数据响应用已经写入的数据
}
//====== 3. 响应用数据======
})
// 启动web服务器
server.listen(8081, function () {
console.log('服务器启动成功,监听8080端口!')
})
function executeSql(callback) {
let connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'b123',
database: 'mydb'
})
// 3. 建立连接
connection.connect()
// 4. 执行sql语句
connection.query('SELECT * FROM student', function (error, result) {
if (error) {
console.log('数据库操作出错')
return
}
callback(result)
})
// 5. 关闭连接
connection.end()
}