一 node环境使用express
1. 下载安装
npm i express --save
npm i nodemon --save
2. 配置服务器
var app = express();
app.listen(3000, function () {
console.log('app is running, http://127.0.0.1:3000');
})
3. express默认读取的目录是views文件夹,如果需要修改
app.set('views',path.join(__dirname,'./views/'));
4. 配置静态开放文件路径
- 第一个参数读取路径文件前面配置的路径 /public/
- 第二个参数开放那个目录 使用 express.static()
app.use('/public/', express.static('./public/'));
5. 解析express环境中传入的post方法
- express只有解析get的方法,没有解析post的方法需要安装插件body-parser
npm i body-parser --save
6. body-parser使用
- 配置bodyParser必须在挂载路由之前router
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extends:false}))
app.use(bodyParser.json())
7. 使用express中的Router()方法配置路由
var router = express.Router();
router.get('/', (req, res) => {
res.status(200)
res.json(data)
})
router.post('/', (req, res) => {})
app.use(router)
二、node中使用 mongodb
1.安装 mongoose
npm i mongoose --save
2.使用
- 数据库连接,没有创建 使用 mongoose.connect()
- 设计表集合结构 使用mongoose中的Schema方法
- mongoose.model 方法将一个架构发布为model
第一个参数:传入一个大写名词数字字符串,用来表示数据库名称
mongoose会自动将大写名词字符串生成小写的复数的集合名称
第二个参数就是架构 userSchema
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/itcast');
var Schema = mongoose.Schema;
var commentsSchema = new Schema({
name:{
type:String,
require:true
},
gender:{
type:Number,
enum:[0,1],
default:0
},
age:{
type:Number,
require:true
}
})
module.exports = mongoose.model('Student',commentsSchema)
三 node中使用art-template模板
1.安装插件
npm i art-template --save
npm i express-art-template --save
2.配置使用 art-template
- 第一个参数渲染文件的后缀名 .html
- 第二个参数使用express-art-template
- 安装art-template 后express为Response对象提供了一个方法render
app.engine('html', require('express-art-template'));
router.get('/students', function (req, res) {
res.render('文件的名字', {'所需数据'})
})
四、完整代码
1、配置服务器的代码app.js
var express = require('express');
var bodyParser = require('body-parser')
var router = require('./router');
var app = express();
app.use('/node_modules/', express.static('./node_modules/'))
app.use('/public/', express.static('./public/'));
app.engine('html', require('express-art-template'));
app.use(bodyParser.urlencoded({extends:false}))
app.use(bodyParser.json())
app.use(router)
app.listen(3000, () => {
console.log('running…… http://127.0.0.1:3000');
})
2. 配置路由的代码 router.js
var express = require('express')
var router = express.Router();
var Student= require('./mongoos.js');
router.get('/', (req, res) => {
res.render('index.html')
})
module.exports = router;
3.配置mongodb的代码mongoos.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/itcast');
var Schema = mongoose.Schema;
var commentsSchema = new Schema({
name:{
type:String,
require:true
},
gender:{
type:Number,
enum:[0,1],
default:0
},
age:{
type:Number,
require:true
}
})
module.exports = mongoose.model('Student',commentsSchema)
五 、密码加密
- 安装
npm i md5-node --save
- 加载使用
var md5 = require('md5-node');
req.body.password = md5(req.body.password)
六 express中Session和Cookie使用
- express中默认不支持Session和Cookie
- 但是可以使用第三方中间件:express-session
- 安装
npm i express-session --save
- 使用
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}))
七、涉及到的链接
- art-template模板使用方法
- mongodb官网
- express官网