一 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官网