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. Day6 - M - 动态逆序对 HYSBZ - 3295

    对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删 除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数 I ...

  2. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?

    之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路   ...

  3. 应用于Oculus Quest的VR头显应用

    项目需要一个VR头显项目来展示算法成果,设备为Oculus Quest一体机,基于android平台(平台要切换为android),体验了下设备效果还行,但还是有点沙窗效应.记录一下开发流程. 先贴个 ...

  4. P1429 平面最近点对(加强版)(分治)

    P1429 平面最近点对(加强版) 主要思路: 分治,将点按横坐标为第1关键字升序排列,纵坐标为第2关键字升序排列,进入左半边和右半边进行分治. 设d为左右半边的最小点对值.然后以mid这个点为中心, ...

  5. yum相关变量浅析

    问题背景 同事发现一台centos7机器的yum repo不能使用,现象为相关的repo的meta文件下载失败,提示相关meta文件的下载路径有问题. 问题分析 通过终端输出的报错,发现是/etc/y ...

  6. netty权威指南学习笔记一——NIO入门(1)BIO

    公司的一些项目采用了netty框架,为了加速适应公司开发,本博主认真学习netty框架,前一段时间主要看了看书,发现编程这东西,不上手还是觉得差点什么,于是为了加深理解,深入学习,本博主还是决定多动手 ...

  7. mongoose 报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead

    mongoose.set('useCreateIndex', true)    // 加上这个

  8. java反射的认知和学习

    1.学习了Class对象,Filed对象(对应数据),Method对像(对应函数),Constructor对象(对应构造函数). 2.Declared可用于获取私有的数据和方法,但是打印得使用setA ...

  9. Java算法练习——盛最多水的容器

    题目链接 题目描述 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) ...

  10. 每日一linux命令

    每日一linux命令 http://www.cnblogs.com/peida/tag/每日一linux命令/