安装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
  • 测试


    测试没有问题(部分截图)

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

欢迎访问我的个人博客

第一天:搭建环境和初始化路由相关推荐

  1. Java分布式二手房项目尚好房第一课 搭建环境

    Java分布式二手房项目尚好房2.0:搭建环境 一.项目介绍 1.介绍 尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供 ...

  2. andorid 第一天 搭建环境(于本博另一篇文章 ubuntu下安装andoird SDK相同内容)

    本文為eagerwolf原創,轉載請著名出處. 相關參考請到:http://developer.android.com ________________________________ 第一天進入an ...

  3. Django进阶 Django REST framework+Vue 打造生鲜超市第一天 搭建环境

    新人学习django 是按照这个大佬的教程学习的 链接: https://www.cnblogs.com/derek1184405959/p/8733194.html. 很多步骤都是按照上面的教程学习 ...

  4. java程序员入职第一天搭建环境

    1. Eclipse安装文档 安装eclipse首先要安装JDK. JDK的安装教程如下. 根据自己的电脑版本找到与之对应位数的JDK安装文件,并安装: 计算机右键->属性->高级系统设置 ...

  5. 大数据Python基础——第一章 搭建环境

    一. 从百度Python官网处下载最新版或者其他版本的Python软件. 1.附下载链接:Download Python | Python.orgThe official home of the Py ...

  6. 第一章 Java环境搭建、IDEA、Java语言

    JavaSE基础大纲: 一. Java环境搭建.IDEA.Java语言 二.Java语法.运算符.随机数 三.分支.循环.控制关键字 四.数组详解.案例训练 五.方法详解.案例训练 六.面试常见编程案 ...

  7. windows phone开发第一步:搭建软件开发环境

    2019独角兽企业重金招聘Python工程师标准>>> windows phone开发第一步:搭建软件开发环境:http://www.cnblogs.com/hanjun/archi ...

  8. 从零开始Android游戏编程(第二版) 第一章 搭建开发环境

    第一章 搭建开发环境 难度:容易 工欲善其技,必先利其器.我们要做的第一件事就是搭建Android开发环境.本文只介绍Windows下的安装方法,Linux下的安装方法请参考官方网站的介绍. 与PC编 ...

  9. 嗖嗖嗖主题网wordpress外贸企业主题制作教程--第一讲 本地环境的搭建和wordpress安装

    第一讲 本地环境的搭建和wordpress安装 第一讲 本地环境的搭建和WordPress安装

  10. [2014年学习计划之RoR系列] 第一步 - 搭建开发环境

    千里之行始于足下.昨天下午开始我迈出了RoR学习的第一步 - 搭建Ruby on Rails环境. 我现在的主要开发环境是ASP.NET,所以想在Windows上搭建RoR的开发环境.在网上浏览一番, ...

最新文章

  1. java mp3播放器 ×××面
  2. JDK1.8源码阅读系列之二:LinkedList
  3. BZOJ-1045 糖果传递 数学+递推
  4. Android Sensor——传感器
  5. CAT 性能优化的实践和思考
  6. python基础开发环境_Python基础教程,第一讲,开发环境搭建
  7. flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
  8. oracle severity,ORACLE10G如何清除OEM下的历史警告信息
  9. Spark入门-了解Spark核心概念
  10. Linux系统编程26:进程间通信之进程间通信的基本概念
  11. 1000人系统服务器配置,win云服务器在线1000人配置
  12. 【TWVRP】基于matlab遗传算法求解带时间窗的载重约束外卖配送车辆路径规划问题【含Matlab源码 1417期】
  13. 数据挖掘算法之Apriori算法应用实例
  14. matlab 函数定义 属性,matlab class()函数类定义技巧
  15. 美国2021年因极端天气损失上千亿美元
  16. android notification应用之自定义来电通知
  17. UVa Problem 10041 Vito’s Family (Vito 家族)
  18. 叮咚小区官网新闻已不更新
  19. 第979期机器学习日报(2017-05-24)
  20. 高斯消去法的python实现

热门文章

  1. H.264学习过程中遇到的英文缩写整理
  2. 用glew,glfw实现opengl绘制3D学习笔记1-实现一个窗口
  3. spark 通过打散热点key解决数据倾斜问题
  4. mysql如何更改文件所有者sa_Mssql Server2005中更改sa的用户名的多种方法
  5. 全景视觉空间直线检测_「好玩」手机拍照的全景模式原来还能这样玩
  6. python字符串与数字转换,python 字符串和整数的转换方法
  7. java 反射如何给属性赋值_关于Java属性反射的异常问题
  8. jdbc连接mysql数据库 工作流程_jdbc连接数据库流程图
  9. 快速掌握用python写并行程序_自己python程序的并行修改
  10. HTML中哪个代码能使div在中心,为什么在html代码的div当中设置margin-top:10px没响应,加了position也不行...