Node.js系列-express(下)

 前言

  距上次更新博客又兩個月多了,這兩個月內除了上班時間忙公司的項目外,下班後也沒有閒着,作了點外包,有小程序的,管理端的項目。也可能那段時間作的外包項目也都比較急,因此晚上都搞到一點左右睡,嚴重的壓榨了本身的休息時間,搞得緩了好久才恢復過來。固然,也發現了忙外包的好處和壞處了,好處就能夠多了些項目經驗,例如小程序的作的是音視頻類的教育應用,也算了解了一些公司項目不須要用到的api;管理端的也應用了vue+element-ui開發,算爲公司項目奠基了些基礎吧。壞處嘛,就是真心勞累,也因爲了解市場很少,報價並不高,還能夠說低,接了後問了朋友都說個人價格低啊,心累啊~~~,還有就是作的項目其實說深的,對自身技術提升感受效果通常,因此也總結了技術的提高仍是須要自身沉澱,不不能靠一味的多作項目。好了,不扯了,關於node.js的學習也已經一大段時間沒更新了,如今繼續更新,有講得不到位或者錯誤的地方但願大佬指出。javascript

Express

  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數據庫的應用。也但願有大佬指出缺漏或錯誤的,謝謝。

相關文章
相關標籤/搜索