一,起一个服务器,并接收请求

第一步:安装express

npm install express
//备注一,每次修改服务端代码,需要重启服务器,也就是把这个js重新node运行一下才会生效
const express=require('express')
//调用express方法创建网站服务器
const app=express()
const bodyParser=require('body-parser')
//没有调用next方法,直接拦截所有客户端请求
// app.use((req,res,next)=>{//  res.send('当前网站正在维护……')
// })
//解决跨域问题
app.all('*', function(req, res, next) {//设为指定的域res.header('Access-Control-Allow-Origin', "*");res.header("Access-Control-Allow-Headers", "X-Requested-With");res.header('Access-Control-Allow-Headers', 'Content-Type');res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");res.header('Access-Control-Allow-Credentials', true);res.header("X-Powered-By", ' 3.2.1');next();
});
//拦截所有的请求,对post请求做出处理,把参数存在req.body中
//extended:false 方法内部使用querysyring模块处理请求参数的格式
app.use(bodyParser.urlencoded({extended:false}))
//4,app.use表示所有请求都会走这个接收,所以它要放置在最上面
app.use((req,res,next)=>{console.log("所有的请求都走了app.use这个中间件")next()
})
//4,所有的url为request的请求都需要走这个接收
app.use('/request',(req,res,next)=>{console.log("所有url为request的请求走了app.use/request这个中间件")next()
})//1,设置第一个路由,处理localhost:3000/的请求
app.get('/',(req,res)=>{//send//1,send方法内部会检测响应内容的类型//2,send方法会自动设置http状态码//3,send方法会帮我们自动设置响应的内容类型和编码res.send('hello express')
})
//2,设置第二个路由,主要讲的是get请求的处理
app.get('/list',(req,res)=>{res.send({name:'张三',age:20})
})//3,同名中间件,要让它向下继续匹配,需要调用next,直至传递到同url下的截至为止
app.get('/request',(req,res,next)=>{req.name='张三'next()
})
app.get('/request',(req,res)=>{res.send(req.name)
})//错误的捕获
app.get('/index',async(req,res,next)=>{try{await readFile('./aaa.js')}catch(err){next(err)}//错误发生,就会触发错误处理中间件,把err错误信息传递过去})
//错误的处理--错误处理中间间,一旦有错误抛出,就会执行
app.use((err,req,res,next)=>{res.status(500).send(err.message)
})//路由从上到下匹配,如果都没匹配上,程序运行到这里
//那么就说明没找到页面
app.use((req,res,next)=>{res.send('当前访问的路径是不存在的(服务器端未定义)')
})
//监听端口
app.listen(3000)
console.log('网站服务器启动成功')

二,服务器获取

1,get请求的参数获取

get请求的请求参数放置在req.query中

//从get请求的params中获取数据
app.get('/testgetparams',(req,res)=>{res.send(req.query)
})

2,post参数的获取

express自己处理不了post的json数据,需要安装

npm install body-parser

导入:

const bodyParser=require('body-parser')
//拦截所有的请求,对post请求做出处理,把参数存在req.body中
//extended:false 方法内部使用querysyring模块处理请求参数的格式
app.use(bodyParser.urlencoded({extended:false}))

使用时:

//从post请求中获取数据,存放在req.body中
app.post('/testpostbody',(req,res)=>{//接收post请求参数,res.send(req.body)
})

express在本地起一个简单服务器可能会用到的(本文用的uniapp做例子)相关推荐

  1. 【Java】远程调用、线程池手写一个简单服务器

    " 关键字:远程调用.序列化.反序列化.反射.动态代理.客户端.服务端.线程池 > 思考题:带着这几个问题可以先思考,然后看完文章再去理解,也可以在评论区讨论喔~ 反射和动态代理关系和 ...

  2. 用tomcat在本地部署一个web服务器

    今天小蔡彪同学让测一下移动端ios和android对h5某些新特性的支持情况.自然h5得自己简单写一下,写完发给ios那边也测一下,这样是不是太low了?他们给我们测的时候发个ip就测了,没理由我这要 ...

  3. 使用nodejs、express以及MySQL制作一个简单类淘宝的登录注册页面

    项目搭建参考自 原文地址:https://jimmyhjh.com/nodejs-express-MySQL-4177adf369dc46d7983138b891d582c9 一.通过MySQL建立数 ...

  4. 如何用express+node+ejs 搭建一个简单的页面

    1.建立工程文件夹my_ejs. 2.首先利用npm install express和npm install ejs 下载这两个家伙.至于要不要设置成全局的,看习惯,我习惯性的下载到本项目中的文件夹中 ...

  5. [转]Express入门教程:一个简单的博客

    来源:http://www.open-open.com/lib/view/open1454560780730.html 转载于:https://www.cnblogs.com/hcbin/p/5317 ...

  6. 基于Domoticz智能家居系统(十七)DIY一款基于MySensors的ESP8266+NRF24L01的MQTT(WIFI)和RF无线网关(三)一个简单MySensors客户端的验证实验

    DIY一款基于MySensors的ESP8266+NRF24L01的MQTT(WIFI)和RF无线网关(三)一个简单MySensors客户端的验证实验 一个简单MySensors客户端的验证实验 一. ...

  7. 用 Go 编写一个简单的 WebSocket 推送服务

    用 Go 编写一个简单的 WebSocket 推送服务 本文中代码可以在 github.com/alfred-zhon- 获取. 背景 最近拿到需求要在网页上展示报警信息.以往报警信息都是通过短信,微 ...

  8. 搭建一个简单springboot后端框架

    前言 框架知识是每个程序员都应该或多或少都要有所了解,作为后端开发更是以后进阶架构师必备的知识储备:以此为出发点,我们可以从搭建一个简单的后端框架开始,了解相关的技术点和搭建思路. 我们可以从创建项目 ...

  9. oracle制作假数据,Oracle Workflow Demo (一) - 一个简单的请假申请工作流

    Oracle Workflow Demo (1) - 一个简单的请假申请工作流 目标:通过Oracle Workflow做一个简单的请假申请工作流,效果:经理接到流程后,可以Approve,也可以Re ...

  10. 基于PHP实现一个简单的在线聊天功能(轮询ajax )

    基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...

最新文章

  1. 第 22 章 DDL - Data Definition Language
  2. 双边滤波JAVA代码实现
  3. iOS学习笔记---oc语言第八天
  4. 服务器log文件清理,服务器日志切割清理工具(LogCutter)
  5. Acwing第 15 场周赛【未完结】
  6. linux常用系统命令
  7. activiti实现跳转节点的方法
  8. 经典C语言程序100例之五四
  9. 高性能服务器设计——常用网络服务器设计模型(转载)
  10. Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS
  11. [Node.js] ES6新语法
  12. PHP 工厂模式浅析
  13. android某个界面横屏,iOS强制某个界面横屏的方法
  14. 图像旋转(任意角度)matlab
  15. 对计算机科学与技术专业课程的认识,计算机科学与技术专业课程
  16. APP支付宝提现和微信提现之服务端接入
  17. 我们真的不需要35岁以上的项目经理吗
  18. (一)移动端前端开发-移动端基础
  19. Oracle-log file sync等待事件分析
  20. 电力系统强大的Gurobi 求解器的学习(PythonMatlab)

热门文章

  1. 234.回文链表(力扣leetcode) 博主可答疑该问题
  2. linux开发读取外部存储,Android 获取外接储存的设备路径(如挂载的U盘),android挂载...
  3. mycat-mysql读写分离
  4. 如何高效开发支付接口对接
  5. asp.net状态服务文章阅读
  6. iATKOS v7硬盘安装教程(硬盘助手+变色龙安装版)
  7. C# 14位日期型字符串yyyyMMddHHmmss转变为日期格式
  8. #PYTHON#数据模型
  9. 开启线程的几种方式、实现 Runnable 接口、实现 Runnable 接口、继承 Thread 类、FutureTask 配合 Thread
  10. 【feign源码】流程分析