第一天:搭建环境和初始化路由
安装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 = 8000const 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/list | get | author作者,keyword搜索关键字 | 参数为空时,则不进行查询过滤 |
获取一篇博客的内容 | /api/blog/detail | get | id | |
新增一篇博客 | /api/blog/new | post | post中有新增的信息 | |
更新一篇博客 | /api/blog/update | post | id | postData中有更新的内容 |
删除一篇博客 | /api/blog/del | post | id | |
登录 | /api/user/login | post | postData中有用户名和密码 |
项目目录
- 在项目中创建文件用于存放路由
- 在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.urlreq.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}//未命中路由,返回404res.writeHead(404,{"Content-type": "text/plain"})res.write("404 Not Found\n")res.end()}
module.exports=serverHandle
- 测试
测试没有问题(部分截图)
下一篇,篇尾可以下载源码哦
欢迎访问我的个人博客
第一天:搭建环境和初始化路由相关推荐
- Java分布式二手房项目尚好房第一课 搭建环境
Java分布式二手房项目尚好房2.0:搭建环境 一.项目介绍 1.介绍 尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供 ...
- andorid 第一天 搭建环境(于本博另一篇文章 ubuntu下安装andoird SDK相同内容)
本文為eagerwolf原創,轉載請著名出處. 相關參考請到:http://developer.android.com ________________________________ 第一天進入an ...
- Django进阶 Django REST framework+Vue 打造生鲜超市第一天 搭建环境
新人学习django 是按照这个大佬的教程学习的 链接: https://www.cnblogs.com/derek1184405959/p/8733194.html. 很多步骤都是按照上面的教程学习 ...
- java程序员入职第一天搭建环境
1. Eclipse安装文档 安装eclipse首先要安装JDK. JDK的安装教程如下. 根据自己的电脑版本找到与之对应位数的JDK安装文件,并安装: 计算机右键->属性->高级系统设置 ...
- 大数据Python基础——第一章 搭建环境
一. 从百度Python官网处下载最新版或者其他版本的Python软件. 1.附下载链接:Download Python | Python.orgThe official home of the Py ...
- 第一章 Java环境搭建、IDEA、Java语言
JavaSE基础大纲: 一. Java环境搭建.IDEA.Java语言 二.Java语法.运算符.随机数 三.分支.循环.控制关键字 四.数组详解.案例训练 五.方法详解.案例训练 六.面试常见编程案 ...
- windows phone开发第一步:搭建软件开发环境
2019独角兽企业重金招聘Python工程师标准>>> windows phone开发第一步:搭建软件开发环境:http://www.cnblogs.com/hanjun/archi ...
- 从零开始Android游戏编程(第二版) 第一章 搭建开发环境
第一章 搭建开发环境 难度:容易 工欲善其技,必先利其器.我们要做的第一件事就是搭建Android开发环境.本文只介绍Windows下的安装方法,Linux下的安装方法请参考官方网站的介绍. 与PC编 ...
- 嗖嗖嗖主题网wordpress外贸企业主题制作教程--第一讲 本地环境的搭建和wordpress安装
第一讲 本地环境的搭建和wordpress安装 第一讲 本地环境的搭建和WordPress安装
- [2014年学习计划之RoR系列] 第一步 - 搭建开发环境
千里之行始于足下.昨天下午开始我迈出了RoR学习的第一步 - 搭建Ruby on Rails环境. 我现在的主要开发环境是ASP.NET,所以想在Windows上搭建RoR的开发环境.在网上浏览一番, ...
最新文章
- java mp3播放器 ×××面
- JDK1.8源码阅读系列之二:LinkedList
- BZOJ-1045 糖果传递 数学+递推
- Android Sensor——传感器
- CAT 性能优化的实践和思考
- python基础开发环境_Python基础教程,第一讲,开发环境搭建
- flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
- oracle severity,ORACLE10G如何清除OEM下的历史警告信息
- Spark入门-了解Spark核心概念
- Linux系统编程26:进程间通信之进程间通信的基本概念
- 1000人系统服务器配置,win云服务器在线1000人配置
- 【TWVRP】基于matlab遗传算法求解带时间窗的载重约束外卖配送车辆路径规划问题【含Matlab源码 1417期】
- 数据挖掘算法之Apriori算法应用实例
- matlab 函数定义 属性,matlab class()函数类定义技巧
- 美国2021年因极端天气损失上千亿美元
- android notification应用之自定义来电通知
- UVa Problem 10041 Vito’s Family (Vito 家族)
- 叮咚小区官网新闻已不更新
- 第979期机器学习日报(2017-05-24)
- 高斯消去法的python实现
热门文章
- H.264学习过程中遇到的英文缩写整理
- 用glew,glfw实现opengl绘制3D学习笔记1-实现一个窗口
- spark 通过打散热点key解决数据倾斜问题
- mysql如何更改文件所有者sa_Mssql Server2005中更改sa的用户名的多种方法
- 全景视觉空间直线检测_「好玩」手机拍照的全景模式原来还能这样玩
- python字符串与数字转换,python 字符串和整数的转换方法
- java 反射如何给属性赋值_关于Java属性反射的异常问题
- jdbc连接mysql数据库 工作流程_jdbc连接数据库流程图
- 快速掌握用python写并行程序_自己python程序的并行修改
- HTML中哪个代码能使div在中心,为什么在html代码的div当中设置margin-top:10px没响应,加了position也不行...