第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【金秋打卡】第7天 Node.js+Express+Koa2 開發(fā)Web Server博客 6-6

標簽:
征文 活動

课程名称: 2022全新 Node.js+Express+Koa2 开发Web Server博客

课程章节: 6-6 API对接mysql(博客列表)

课程讲师: 双越

课程内容:
修改项目 blog-1 的文件夹。
对获取博客数据的修改,从mysql获取数据

//  ./src/controller/blog.js 文件

const { exec } = require("../db/mysql");

// 获取博客列表
const getList = (author, keyword) => {
  // 1=1(正确) 起到站位作用
  let sql = `select * from blogs where 1=1 `;

  if (author) {
    sql += `and author='${author}' `;
  }

  if (keyword) {
    sql = `and title like '%${keyword}%' `;
  }

  // 倒序排序
  sql += `order by createtime desc;`;

  // 返回 promise
  return exec(sql);
};
module.exports = {
  getList,
};

修改 ./src/routers/blog.js 文件,获取博客列表的接口

// ./src/routers/blog.js
const {
  getList,
} = require("../controller/blog.js");

const { SuccessModel, ErrorModel } = require("../model/resModel.js");

// 博客相关接口
const handleBlogRouter = (req, res) => {
  const method = req.method; // GET POST
  const id = req.query.id;

  // 获取博客列表
  if (method == "GET" && req.path === "/api/blog/list") {
    const author = req.query.author || "";
    const keyword = req.query.keyword || "";
	
    const result = getList(author, keyword);
    // 返回 promise
    return result.then((listData) => {
      return new SuccessModel(listData, "这是获取博客列表的接口");
    });
  }

};

module.exports = handleBlogRouter;

修改app文件中博客路由的返回值

// ./app.js
const qs = require("qs");

// 博客相关接口
const handleBlogRouter = require("./src/router/blog.js");

// 用于处理 post data
const getPostData = (req) => {
  return new Promise((resolve, reject) => {
    if (req.method !== "POST") {
      resolve({});
      return;
    }

    if (req.headers["content-type"] !== "application/json") {
      resolve({});
      return;
    }

    let postData = "";
    req.on("data", (chunk) => {
      postData += chunk.toString();
    });

    req.on("end", () => {
      if (!postData) {
        resolve({});
        return;
      }

      resolve(JSON.parse(postData));
    });
  });
};

const serverHandle = (req, res) => {
  // 设置返回格式
  res.setHeader("Content-type", "application/json");

  // 处理 path
  const url = req.url; // 获取路由
  req.path = url.split("?")[0]; // 获取api

  // 解析 query
  req.query = qs.parse(url.split("?")[1]);

  // 处理post data
  getPostData(req).then((postData) => {
    // 保存 post 方式传递的数据
    req.body = postData;

    // 处理 blog 路由
    const blogResult = handleBlogRouter(req, res);
    if (blogResult) {
      blogResult.then((blogData) => {
        res.end(JSON.stringify(blogData));
      });

      return;
    }

};

module.exports = serverHandle;

// process.env.NODE_ENV

课程收获:
前端调用一个接口,后端如何从mysql获取博客列表数据,的一个流程有一定的了解
图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消