Express Web框架
Express Web框架
Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能
Express框架的核心是对NodeJs中http模块的再包装,在http基础上增加了很多中间件来完善http开发流程。
什么是中间件
一个请求发送到服务器要经历监听请求-解析请求-响应请求,服务器在处理这一过程的时候,将这些复杂的业务拆开成一个个子部分,子部分就是一个个中间件。对于处理请求来说,在响应发出之前,可以对请求和该级响应做一些操作,并且可以将这个处理结果传递给下一个处理步骤
一、安装
npm install express --save
使用
const express = require('express')
const app = express()
const port = 3000
app.get('/',(req,res)=>{
res.send('Home Page')
})
app.get('/user',(req,res)=>{
res.send('User Page')
})
app.listen(port,()=>console.log("服务启动了"))
二、use方法
use是express注册中间件的方法,它接收一个函数作为参数,这个参数通过use注册成为一个中间件会在后续的业务中不断被调用
var express = require("express");
var http = require("http");
var app = express();
app.use(function(request, response, next) {
console.log("这是一个普通的log中间件");
next();
});
app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello world!\n");
});
http.createServer(app).listen(3000);
三、HTTP动词方法
HTTP动词方法指的是http请求的不同方式,比如get、poet、put、delete等
除了指定的动词方法还有一个all方法,表示所有请求都必须通过该中间件,参数中的“*”表示对所有路径有效
而get方法只针对get请求有效
var express = require("express");
var http = require("http");
var app = express();
app.all("*", function(request, response, next) {
response.writeHead(200, { "Content-Type": "text/plain" });
next();
});
app.get("/", function(request, response) {
response.end("Welcome to the homepage!");
});
app.get("/about", function(request, response) {
response.end("Welcome to the about page!");
});
app.get("*", function(request, response) {
response.end("404!");
});
http.createServer(app).listen(3000);
这些方法的第一个参数,都是请求的路径。除了绝对匹配以外,Express允许模式匹配
四、set方法
app.set用于指定变量的值
app.set('title', 'Tina');
app.get('title');
// => "Tina"
五、response对象
- res.status(code) 设定请求状态值
- **res.set(field, [value]) **设置响应头字段
field
值为value
, 也可以一次传入一个对象设置多个值 - res.get(field) 获取响应头里的
field
的值 - res.charset 设置字符集。默认为"utf-8"
- res.send([body|status], [body]) 发送一个响应
- res.render(view, [locals], callback) 渲染
view
, 同时向callback 传入渲染后的字符串 - res.redirect 网址的重定向
- res.sendFile(path, [options]) 发送文件(需要options内设定相对路径)
六、requst对象
- req.ip 获取ip地址
- req.params 获取params参数
- req.query 获取query参数
- req.body 获取请求体
- req.files 获取上传的文件对象
- req.get(field) 获取请求头里的
field
的值 - req.path 获取请求的URL的路径名
- req.host 获取请求的URL的主机名,不包含端口号
七、连接数据库
安装mysql依赖
npm install mysql --save-dev
创建链接
var $mysql = require("mysql");
const mysql = {
host: "localhost", //这是数据库的地址
user: "root", //需要用户的名字
password: "123456", //用户密码 ,如果你没有密码,直接双引号就是
database: "test" //数据库名字
}
//创建一个连接
var $sql = $mysql.createConnection(mysql) //链接数据库
$sql.connect()
//查询
$sql.query('select id from user',function(error, results, fields){
if (error) throw error;
console.log('查询结果: ', results);
}