距上次更新博客又兩個月多了,這兩個月內除了上班時間忙公司的項目外,下班後也沒有閒着,作了點外包,有小程序的,管理端的項目。也可能那段時間作的外包項目也都比較急,因此晚上都搞到一點左右睡,嚴重的壓榨了本身的休息時間,搞得緩了好久才恢復過來。固然,也發現了忙外包的好處和壞處了,好處就能夠多了些項目經驗,例如小程序的作的是音視頻類的教育應用,也算了解了一些公司項目不須要用到的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數據庫的應用。也但願有大佬指出缺漏或錯誤的,謝謝。