#express
2021-04-14 本文已影响0人
大佬教我写程序
在文件操作的相对路径中
./data/a.txt 相对于当前路径
data/a.txt 相对于当前路径
/data/a.txt 绝对路径,当前文件模块所处磁盘根目录
c:/xx/xx... 绝对路径
express
修改完代码自动重启
- 我们这里可以使用第三方命名工具:
nodemon
来帮助我们频繁修改代码重启服务器的问题,nodemon
是一个基于node.js开发的第三方命令行工具,我们使用的时候需要独立安装: - 全局安装
npm install --global nodemon
- 安装之后使用:
nodemon app.js
- 通过下列代码来验证是否安装成功
nodemon -version
- 只要是使用
nodemon app.js
启动服务,他会监视这个app.js文件是否发生了变化,如果发生了变化,会自动重启服务器
hello world的小demo
// 0.安装
//1.引包
var express = require('express');
//创建服务器应用程序,相当于原来的http.createServer
var app = express();
//当服务器收到get请求时,调用回调函
app.get('/', function(req, res) {
res.send('hello world');
})
//绑定端口号
app.listen(3000, function() {
console.log('server is running... 3000');
})
基本路由
- 路由 = 请求方法+请求路径+请求处理函数
- 路由其实就是一张表,这个表里有具体的映射关系
就好比,要找一个人的电话号码,那我们就要去电话本里去找,找到对赢得人,然后就有了对方的电话号码,而路由就是这张表,在通过get/post
获取信息时,就是在这张表里查信息
通过express创建一个公共的public文件夹
- 方法1(第一个参数/public/,可以用其他代替,比如/a/):
app.use('/public/',express.static('./public/'))
- 方法2(没有第一个参数,请求路径跳过public文件夹路径):
app.use(express.static('./public/'))
在express里使用模板引擎
- 安装art-template 和 express-art-template包
npm install --save art-template
npm install --save express-art-template
- 引包
var express = require('express');
var app = express();
- 配置
// 第一个参数,表示,当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎(可修改)
app.engine('art',require('express-art-template'))//express-art-template是依赖eart-template包的
- 使用
// Express 为 Response 相应对象提供了一个方法:render
// render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了
// res.render('html模板名', {模板数据})
// 第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件
// 也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
app.get('/', function (req, res) {
res.render('index.html', {
title: 'hello world'
})
})
如果想要修改默认的views
视图渲染存储路径,可以:
//注意:第一个views千万别写错
app.set('views',目录路径)
express中获取get得到的数据:
-
req.query
可得到对象数组 - 在form表单中,action属性表示提交之后要跳转的url,method表示信息提交的方式
express中获取post的数据
在express中没有内置获取表单post请求体的API,我们需要第三方包:body-parse
- 安装
npm install --save body-parser
- 配置
var express = require('express');
//引包
var bodyparse = require('body-parser');
var app = express();
//加入配置,只要加入此配置,require就会多出来一个body属性,所以就可以通过require.body来获取表单post请求的数据了,
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
- 使用
app.post('/post', function (req, res) {
// 1. 获取表单 POST 请求体数据
// 2. 处理
// 3. 发送响应
// req.query 只能拿 get 请求参数
// console.log(req.query)
var comment = req.body
comment.dateTime = '2017-11-5 10:58:51'
comments.unshift(comment)
// res.send
// res.redirect
// 这些方法 Express 会自动结束响应
res.redirect('/')
// res.statusCode = 302
// res.setHeader('Location', '/')
})