1.安装
假设您已经安装了Node.js,请创建一个目录来保存您的应用程序,并将其作为您的工作目录。
$ mkdir myapp
$ cd myapp
使用npm init命令package.json为您的应用程序创建文件。
$ npm init -y
现在,在myapp目录中安装Express并将其保存在依赖项列表中。例如:
$ npm install express --save
# 或者
$ npm i -S express
要临时安装Express而不将其添加到依赖项列表中,请执行以下操作:
$ npm install express --no-save
2.基本知识
基本路由
get:
app.get('/', function (req, res) {
res.send('你好,我是 Express!')
})
post
app.post('/', function (req, res) {
res.send('你好,我也是 Express!')
})
静态服务
// 公开指定目录
// 只要这样做了,你就可以直接通过 /public/xx 的方式访问 public 目录中的所有资源了
app.use('/public/', express.static('./public/'))
app.use('/static/', express.static('./static/'))
// 这样用 join方法 可以使得 用 /static/xxx 来访问 ./public里的内容
app.use('/static/', express.static(path.join(_dirname,'public')))
// 当省略第一个参数的时候,则可以通过 省略 /public 的方式来访问
// 这种方式的好处就是可以省略 /public/
// 也就是说 127.0.0.1:3000/public资源.png
// 而不是 127.0.0.1:3000/public/public资源.png
app.use(express.static('./public/'))
基本使用
render('html模板名’, {模板数据})
参数
- 第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件(也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中)
- 第二个参数为模板数据,传入第一个参数的html中,供其使用
// Express 为 Response 相应对象提供了一个方法:render
// render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了
res.render('html模板名', {模板数据})
例如:
app.get('/', function (req, res) {
res.render('index.html', {
title : '我是标题’
})
})
修改默认的 views 目录
// 如果想要修改默认的 views 目录,则可以
app.set('views', render函数的默认路径)
express重定向
将
res.statusCode = 302
res.setHeader('Location', '/')
替换成
res.redirect('/')
用一行代码在express中接即可解决
express处理post请求参数
参考博文:
https://yangyongli.blog.csdn.net/article/details/113884136
3.简单使用案例


app.js
// 0. 安装
// 使用npm
// ............
//
// 1. 引包
var express = require('express')
// 2. 创建你服务器应用程序
// 也就是原来的 http.createServer
var app = express()
// 在 Express 中开放资源就是一个 API 的事儿
// 公开指定目录
// 只要这样做了,你就可以直接通过 /public/xx 的方式访问 public 目录中的所有资源了
app.use('/public/', express.static('./public/'))
app.use('/static/', express.static('./static/'))
app.use('/node_modules/', express.static('./node_modules/'))
// 得到路径
// 一个一个的判断
app.get('/about', function (req, res) {
// 在 Express 中可以直接 req.query 来获取查询字符串参数
console.log(req.query)
res.send('你好,我是 Express!')
})
app.get('/pinglun', function (req, res) {
// req.query
// 在 Express 中使用模板引擎有更好的方式:res.render('文件名, {模板对象})
// 可以自己尝试去看 art-template 官方文档:如何让 art-template 结合 Express 来使用
})
// 当服务器收到 get 请求 / 的时候,执行回调处理函数
app.get('/', function (req, res) {
res.send(`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="/static/main.css" />
<title>Document</title>
</head>
<body>
<h1>hello Express!你好</h1>
<h1>马上就要用你写项目了</h1>
</body>
</html>
`)
})
// 相当于 server.listen
app.listen(3000, function () {
console.log('app is running at port 3000.')
})