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)