express
1.开放静态资源 url访问

2express-art-template
https://aui.github.io/art-template/express/
1. response.render()方法只有配置了模板引擎,才会生效
const express = require('express')
const path = require('path')
const app = express()
app.engine('html', require('express-art-template'));
app.set('views', path.join(__dirname, 'views'));
app.use(express.static('./public/'))
app.get('/', (request, response) => {
// response.send('ok')
response.send('ok')
})
app.get('/index', (request, response) => {
// response.render()方法只有配置了模板殷勤,才会生效
response.render('index.html', {
title: 'index page',
tags: ['art', 'template', 'nodejs']
})
})
app.listen(3000, () => {
console.log('服务正常启动在3000端口');
})
3. 批量导入分块路由
re
const fs = require('fs')
let filePathList = fs.readdirSync(__dirname).filter(item => item !== 'index.js').map(item => item.replace('.js', ''))
//[ 'order', 'user' ]
module.exports = app => filePathList.forEach(item => app.use(`/api/${item}s/`, require(`./${item}`)))
定义user.js 路由模块增删改查 匹配路由和逻辑控制器
把路由逻辑处理单独抽离一个文件
// 用户路由 const express = require('express') const router = express.Router() const { getUserList, getUserById, addUser, modifyUserById, deleteUserById } = require('../control/user') /** * 请求用户列表接口 */ router.get('/', getUserList) /** * 请求单个用户接口 */ router.get('/:id', getUserById) /** * 增加用户 */ router.post('/', addUser) /** * 修改用户信息 */ router.put('/:userId', modifyUserById) /** * 删除一个用户 */ router.delete('/:userId', deleteUserById) module.exports = router


User的数据库模型定义
const { model, Schema } = require('mongoose')
const userSchema = new Schema(
{
userId: {
type: String,
required: true,
unique: true, //学号唯一
},
name: {
type: String,
required: true,
},
password: {
type: String,
required: true,
select: false //select设置成false 表示从查询结果中不返回该字段值。如果要显示该字段值 T.opt().select('-password')
},
age: {
type: Number,
required: true,
min: 0,
age: 120
},
gender: {
type: Number,
required: true,
enum: [0, 1], //0 男 1女 默认是男
default: 0
},
hobby: {
type: [String] //定义字符串类型数组['a','b','c'], 也就是数组类型
},
desc: {
type: Schema.Types.Mixed //混合类型数据,任何类型数据都允许
},
createTime: {
type: Date,
default: Date.now
},
// 逻辑删除 硬盘还保存
isActive: {
type: Boolean,
default: true
}
}, {
versionKey: false
})
module.exports = model('User', userSchema) //model(表(集合)名字首字母大写,schema)
浙公网安备 33010602011771号