第一天:搭建环境和初始化路由

安装node环境

一、环境搭建
  • 创建项目目录
    在这里插入图片描述
    注意事项:
    1)bin目录下的www.js应对应package.json中的"main"
    在这里插入图片描述

  • 下载插件(开发环境)

在这里插入图片描述
注意事项
1)package.json中需要配置下面代码

  • cross-env NODE_ENV=dev(设置当前环境是开发环境

  • nodemon ./bin/www.js(检测入口文件是否发生变化,并再次执行该文件代码)此时启动项目的命令为npm run dev
    在这里插入图片描述

  • 写入口文件www.js

const http = require('http')
//加载app.js文件(即server具体实现)
const serverHandle = require('../app.js')

//监听端口
const PORT = 8000

const server = http.createServer(serverHandle)

server.listen(PORT,() => {
   console.log("OK");
})
  • server具体实现
const serverHandle = (req, res) => {
   //设置返回格式
   res.setHeader('Content-type','application/json')

///下面部分先测试数据是否调通/
   //设置返回数据
   const returnData = {
       name:"姓名",
       title:"哈哈123",
    //    获取当前开发环境
       env:process.env.NODE_ENV
   } 

   //返回数据
   res.end(
       JSON.stringify(returnData)
   )
/
}

module.exports=serverHandle
  • 测试
    在这里插入图片描述

二、初始化路由(不使用框架,后面学习将使用框架express和koa2进行优化)
接口设计
描述接口方法url参数备注
获取博客列表/api/blog/listgetauthor作者,keyword搜索关键字参数为空时,则不进行查询过滤
获取一篇博客的内容/api/blog/detailgetid
新增一篇博客/api/blog/newpostpost中有新增的信息
更新一篇博客/api/blog/updatepostidpostData中有更新的内容
删除一篇博客/api/blog/delpostid
登录/api/user/loginpostpostData中有用户名和密码
项目目录
  • 在项目中创建文件用于存放路由

在这里插入图片描述

  • 在blog.js文件中(没有考虑路由优化的前提下
const handleBlogRouter = (req, res) => {
    const method = req.method
    //获取博客列表
    if (method === "GET" && req.path === "/api/blog/list") {
        return {
            msg: "这是获取博客列表的接口"
        }
    }

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

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

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

    //删除一篇博客
    if (req.method === "POST" && req.path === "/api/blog/del") {
        return {
            msg: "这是删除一篇博客的接口"
        }
    }
}
module.exports = handleBlogRouter
  • 在user.js文件中
const handleUserRouter = (req, res) => {
    const method = req.method
    //登录
    if(method === "POST" && req.path === "/api/user/login") {
        return {
            msg: "这是用户登录的接口"
        }
    }
}

module.exports = handleUserRouter
  • 在app.js文件中(即server具体实现)对路由进行转发
//加载博客,用户路由文件
const handleBlogRouter = require('./src/router/blog.js')
const handleUserRouter = require('./src/router/user.js')

const serverHandle = (req, res) => {

   const url = req.url
   req.path = url.split('?')[0]
   //设置返回格式
   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\n")
   res.end()

}
module.exports=serverHandle
  • 测试
    在这里插入图片描述
    在这里插入图片描述
    测试没有问题(部分截图)

下一篇,篇尾可以下载源码哦

欢迎访问我的个人博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海面有风

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值