距上次更新博客又两个月多了,这两个月内除了上班时间忙公司的项目外,下班后也没有闲着,作了点外包,有小程序的,管理端的项目。也可能那段时间作的外包项目也都比较急,因此晚上都搞到一点左右睡,严重的压榨了本身的休息时间,搞得缓了好久才恢复过来。固然,也发现了忙外包的好处和坏处了,好处就能够多了些项目经验,例如小程序的作的是音视频类的教育应用,也算了解了一些公司项目不须要用到的api;管理端的也应用了vue+element-ui开发,算为公司项目奠基了些基础吧。坏处嘛,就是真心劳累,也因为了解市场很少,报价并不高,还能够说低,接了后问了朋友都说个人价格低啊,心累啊~~~,还有就是作的项目其实说深的,对自身技术提升感受效果通常,因此也总结了技术的提高仍是须要自身沉淀,不不能靠一味的多作项目。好了,不扯了,关于node.js的学习也已经一大段时间没更新了,如今继续更新,有讲得不到位或者错误的地方但愿大佬指出。javascript
express(上)主要讲了express框架结构、路由、中间件等概念。这章咱们主要实现简单的用户增改查等功能(暂不借助数据库),熟悉express框架的开发。仍是先安装express-generator应用骨架并使用ejs模板css
//1.安装express-generator npm install expess-generator -g //2.使用ejs模板 express --view=ejs //3.安装依赖 npm install
框架结构:在原框架上新建models文件夹,用于保存用户模型vue
.
├── app.js
├── bin
│ └── www
├── package.json
├── models
│ └── in_memo
│ └── users.js
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.ejs
├── index.ejs
└── layout.ejs
这样,大体的框架咱们就搭建好了。java
1.新建用户模型:构造用户类,建立用户,获取用户列表,获取某一用户,更新用户node
/** * Created by aaron. * description:User Model */ let USER_ID_INT=10000; let users=[]; class User{ constructor(params){ if(!params.name || !params.age) throw new Error('name and age is required when create a new user.') this.name=params.name this.age=params.age this._id=USER_ID_INT++ } } async function createANewUser(params) { const user=new User(params) users.push(user) return user } async function getUsers() { return users } async function getUserById(userId,params) { const user=users.find(u => u._id===userId) console.log(user) return user } async function updateUserById(userId,params) { const user=users.find(u=>u._id===userId) if(params.name)user.name=params.name if(params.age)user.age=params.age return user } module.exports={ model:users, createANewUser, getUsers, getUserById, updateUserById }
2.在routes新建users.js路由完成用户的增查改功能数据库
const express = require('express'); const router = express.Router(); const Users=require('../models/in_memo/users') /* GET users listing. */ router.route('/') .get((req, res, next) => { (async()=>{ const users=await Users.getUsers() return { code:0, users:users } })() .then((r)=>{ res.json(r) }) .catch((e)=>{ next(e) }) }) .post((req,res,next)=>{ (async()=>{ const user=await Users.createANewUser({ name:req.body.name, age:req.body.age }) return { code:0, user:user } })() .then((r)=>{ res.json(r) }) .catch((e)=>{ next(e) }) }); router.route('/:id') .get((req,res,next)=>{ (async()=>{ const user=await Users.getUserById(Number(req.params.id)) return { code:0, user:user } })() .then((r)=>{ res.json(r) }) .catch((e)=>{ next(e) }) }) .patch((req,res,next)=>{ (async ()=>{ const user=await Users.updateUserById(Number(req.params.id),{ name:req.body.name, age:req.body.age }) return { code:0, user:user } })() .then(r=>{ res.json(r) }) .catch(e=>{ next(e) }) }) module.exports = router;
3.最后加路由挂载到app.js上便可express
这样,就完成了简单的用户的增改查功能了,启动项目后,咱们可经过postman完成项目功能的测试。npm
建立新用户截图:element-ui
获取用户截图:json
这样,咱们就能够经过express框架完成对用户的增改查功能了,后续会将完整代码上传到GitHub上,也将添加mongoose数据库的应用。也但愿有大佬指出缺漏或错误的,谢谢。