开发博客day01 初始化路由

项目目录:
在这里插入图片描述
指定入口文件为bin/www.js:
在这里插入图片描述

app.js

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

    const resData = {
        name:'dean',
        site:'xxx',
        env: process.env.NODE_ENV
    }

    res.end(
        JSON.stringify(resData)
    )
}

module.exports = serverHandle;

www.js

const http = require('http');

const PORT = 3000;
const serverHandle = require('../app');

const server = http.createServer(serverHandle);
server.listen(PORT);

安装cross-env

npm i cross-env --save-dev

在package.json里配置cross-env:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "cross-env NODE_ENV=dev nodemon ./bin/www.js",
    "prod": "cross-env NODE_ENV=prod nodemon ./bin/www.js"
  },

在这里插入图片描述
接口设计
在这里插入图片描述
新建一个src文件夹,再在里面新建一个rooter文件夹,里面新建blog.js和user.js
在这里插入图片描述
先把blog.js的接口调通:

const handleBlogRouter = (req, res) => {
    const method = req.method // GET还是POST
    const url = req.url
    const path = url.split('?')[0]

    //获取博客列表
    if(method === 'GET' && path === '/api/blog/list'){
        return {
            msg:'这是获取博客列表的接口'
        }
    }

    //获取博客详情
    if(method === 'GET' && path ==='/api/blog/detail'){
        return {
            msg:'这是获取博客详情的接口'
        }
    }

    //新建一篇博客
    if(method === 'POST' && path === '/api/blog/new'){
        return{
            msg:'这是新增一篇博客的接口'
        }
    }

    //更新一篇博客
    if(method === 'POST' && path === '/api/blog/update'){
        return{
            msg:'这是更新一篇博客的接口'
        }
    }

    //删除一篇博客
    if(method === 'POST' && path === '/api/blog/del'){
        return{
            msg:'这是删除一篇博客的接口'
        }
    }
    
}

module.exports = handleBlogRouter;

再处理一下user.js

const handleUserRouter = (req,res)=>{
        const method = req.method
        const url = req.url
        const path = url.split('?')[0]
        
        //登录
        if (method === 'POST' && path === '/api/user/login'){
            return {
                msg:'这是登录的接口'
            }
        }
    }

    module.exports = handleUserRouter

再在app.js里面处理blog和user路由,未命中路由返回404

const handleBlogRouter = require('./src/rooter/blog')
const handleUserRouter = require('./src/rooter/user')

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

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

    // 处理user路由
    const userData = handleUserRouter(req,res)
    if(userData){
        res.end(
            JSON.stringify(userData)
        )
        return
    }

    // 未命中路由,返回404
    res.writeHead(404,{'Content-type':'text/plain'})
    res.write('404 not found!')
    res.end()
}

module.exports = serverHandle;

运行npm run dev测试一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试登录接口:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值