http

const http = require('http')

// 创建服务器
const server = http.createServer() // 绑定事件,监听客户端的请求
server.on('request', (req, res) => {
// 写入响应头,防止中文乱码
res.writeHeader(200, {
'Content-Type': 'text/html; charset=utf-8'
})
res.end('你好 http 服务器!')
}) server.listen(3333, () => {
console.log('http server running at http://127.0.0.1:3333')
})

express

const express = require('express')

// 创建服务器
const app = express() // 监听客户端的请求
// 只有客户端的请求类型是 get,并且 请求地址是 / 根路径的时候,
// 才会调用 后面指定的处理函数
app.get('/', (req, res) => {
// express 中,封装了更好用的 res.send 方法
res.send('你好,express 服务器!')
}) // 监听客户端的post请求,并且请求的地址是 /adduser 的时候,
// 才会调用后面指定的处理函数
app.post('/adduser', (req, res) => {
res.send('服务器处理成功!')
}) // 启动服务器
app.listen(4444, () => {
console.log('express server running at http://127.0.0.1:4444')
})

在express框架中获取客户端提交的表单数据

const express = require('express')
const qs = require('querystring') const app = express() // 监听客户端的 post 请求,且请求地址为 /adduser 的时候,会调用指定的处理函数
app.post('/adduser', (req, res) => {
// 注意:客户端提交到服务器的数据,都保存到了 req 请求对象中
// 只要客户端向服务器通过post方式,提交了表单,那么 就会触发 req 的 data 事件
// 只要安装一个 第三方的npm包,名字叫做 body-parser, 并进行简单配置,就能够直接使用 req.body获取到表单数据了
let str = ''
req.on('data', chunk => {
// 把每次得到的分片数据,拼接到 str 字符串中
// 如果 字符串 和 Buffer 数据进行拼接,得到结果,是字符串
str += chunk
// 思考:只要触发了 data,就证明有数据发送到服务器了,但是,什么时候,就证明数据已经发送和接收完毕了呢???
}) // 通过监听 req 的 end 事件,就能够直到数据已经发送完毕了,服务器也已经接收到了完整的数据!
req.on('end', () => {
// console.log(str)
// 对数据进行 URL 解码操作
// const strDecode = decodeURI(str)
// console.log(strDecode)
const result = qs.parse(str)
// 使用 express 的 send 方法,向客户端发送 对象
res.send(result)
}) // res.send('添加用户成功!')
}) app.listen(4444, () => {
console.log('express server running at http://127.0.0.1:4444')
})

使用body-parser包解析表单数据

安包:npm install body-parser -S

const express = require('express')
// 1. 导入 解析表单数据的包
const bodyParser = require('body-parser') const app = express()
// 2. 配置一下
app.use(bodyParser.urlencoded({ extended: false })) app.post('/adduser', (req, res) => {
console.log(req.body)
res.send('ok')
}) app.listen(4444, () => {
console.log('启动成功!')
}) 

nodejs(7)练习 http 和 express 创建简单的服务器的更多相关文章

  1. 【重点突破】——使用Express创建一个web服务器

    一.引言 在自学node.js的过程中有一个非常重要的框架,那就是Express.它是一个基于NodeJs http模块而编写的高层模块,弥补http模块的繁琐和不方便,能够快速开发http服务器.这 ...

  2. Nodejs学习笔记(1) Nodejs安装+借助express模块简单部署服务器

    1 安装 1.1 下载和安装 1.2 什么是REPL?如何使用? 1.3 npm对单一模块的安装和删除功能 1.4 通过package.json自定义模块(安装模块) 1.5 设置全局目录 2 部署网 ...

  3. Nodejs+Express创建HTTPS服务器

    为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协 ...

  4. nodejs+express+mongodb简单的例子

    简单的介绍下node+express+mongodb这三个东西.node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上比 ...

  5. Nodejs学习笔记(3) 创建服务器:Web 模块(http)与 express 框架

    目录 参考资料 1. 使用 http 模块创建服务器 1.1 实现思路及代码 1.2 HTTP 结构 1.2.1 Request中的重要字段 1.2.2 Response 头信息:文件类型.状态码.连 ...

  6. Express 的基本使用(创建一个简单的服务器)

    Express 的基本使用(创建一个简单的服务器) const express = require('express') // 创建服务器应用程序 // 相当于 http.creatServer co ...

  7. nodejs创建一个HTTP服务器 简单入门级

    const http = require('http');//请求http.createServer(function(request, response){    /*createServer该函数 ...

  8. 前端用Webpact打包React后端Node+Express实现简单留言版

    前言 React官方推荐用Browserify或者Webpack 来开发React组件. Webpack 是什么?是德国开发者 Tobias Koppers 开发的模块加载器.Instagram 工程 ...

  9. 用nodejs搭建一个简单的服务器

    使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安 ...

随机推荐

  1. ASP.NETCore -----导入Excel文件

    前端上传excel文件利用npoi读取数据转换成datatable(netcore坑爹啊,用的vs2017竟然不能可视化) 前端界面 @{ Layout = null; } <!DOCTYPE ...

  2. supervisor的介绍

    1.supervisor 简介 Supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的 ...

  3. maven项目添加配置文件

    1. 在src/main/resources下新建param.properties 2. 在param.properties文件中添加 mqtt.host=tcp://127.0.0.1:1883 m ...

  4. GNS3 ip route 命令解析

    ip route 120.94.0.0 255.254.0.0 172.16.252.1ip route 192.168.0.0 255.255.0.0 10.10.10.119ip route 21 ...

  5. Windows平台整合SpringBoot+KAFKA_第1部分_环境配置部分

    项目需要,需要整合 SpringBoot+KAFKA 我调查了一下,发现Linux中,要先装zoomkeeper,再装KAFKA,如  https://blog.csdn.net/zhangcongy ...

  6. 十二、Sap的压缩类型p的使用方法

    一.代码如下 二.我们查看输出结果 三.如果位数超出了会怎样呢?我们试试 四.提示如下

  7. vue 中 {{}} 和 v-text 和 v-html 区别

    data: { message:'<h3>我是一只小小小小鸟!</h3>' }, <div class="" >{{message}}</ ...

  8. springboot+thymeleaf项目中使用th:replace访问templates子目录下的模板,会报错找不到模板路径

    解决方法: 先将模板路径放置templates目录下,发现可以访问,说明th:replace是可以用的. 那可能是出现在路径问题上面. 于是我开始调错,改路径. 后来在网上查找资料.说了很多种方法. ...

  9. POJ 3368:Frequent values

    Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14764   Accepted: 5361 ...

  10. apicloud - addEventListener 接收不到 sendEvent 的解决方法

    要将 api.addEventListener 放在最前面 , 减少受到其他事件的影响 apiready = function () { api.addEventListener({          ...