Web开发框架『express』的基本使用 —— { }
基本
res.send([body]) 和 res.end([data] [, encoding]) 的区别
1、参数的区别:
res.send([body]): body这个参数可以是【Buffer对象】、字符串、对象、数组
res.end([data] [, encoding]): data这个参数可以是【Buffer对象】、字符串
2、响应报文头的区别:
res.send()hui自动发送更多的响应报文头,其中包括Content-Type,不会发生乱码问题
app.get()、app.all()、app.use() 的区别
// 含义:请求方法是get,请求路径pathname必须严格等于/submit
app.get('/submit',function(req,res){
res.send('submit');
})
// 含义:请求方法可以是任何一个,请求路径pathname必须严格等于/submit
app.all('/submit',function(req,res){
res.send('submit');
})
// 含义:请求方法可以是任何一个,请求路径pathname的第一部分等于/submit
app.use('/submit',function(req,res){
res.send('submit');
})
通过 req.params 获取路由中的参数
app.get('/news/:year/:month/:day',function(req,res){
res.send(req.params);
})
请求地址:http://localhost:8000/news/2020/12/30
响应参数:{"year": "2020","month": "12","day": "30"}
模拟 Apache 实现静态资源托管服务
// 含义:1、路径第一部分等于 /
// 2、如果请求的是index.html,就用请求的index.html与public拼接,返回找到的静态资源文件
app.use('/',express.static(path.join(__dirname,'public')))
// 含义:1、路径第一部分等于 /www
// 2、如果请求的是index.html,就用请求的index.html与public拼接,返回找到的静态资源文件
app.use('/www',express.static(path.join(__dirname,'public')))
实践
创建 package.json 文件
npm init -y
安装 express 模块
npm i express --save
封装 app.js 模块
// app.js 模块负责:启动服务
// 1、加载 express 模块
var express = require("express")
// 加载 config.js 模块
var config = require("./config.js")
// 加载路由模块
var router = require("./router.js")
// 2、创建 app 对象
var app = express()
// 3、注册路由
// 设置 app 与 router 相关联
app.use('/',router)
// 4、启动服务
app.listen(config.port,function(){
console.log('http://localhost:' + config.port);
})
封装 config.js 模块
module.exports = {
port: '9000'
}
封装 router.js 模块
// 主要负责路由判断
// 1、创建 router 对象(router 既是一个对象,也是一个函数)
var express = require("express")
var router = express.Router()
// 加载业务模块
var handler = require("./handler.js")
// 2、通过 router 对象挂载路由
// 挂载路由的时候,内部会以【键值对】的形式创建一个【路由表】
// 键:请求路径,值:请求时要执行的函数
router.get('/',handler.index)
router.get('/index',handler.index)
router.get('/submit',handler.submit)
// 3、返回 router
module.exports = router
封装 handler.js 模块
// 业务模块
module.exports.index = function(req,res){
res.send("index page")
}
module.exports.submit = function(req,res){
res.send("submit page")
}
Web开发框架『express』的基本使用 —— { }的更多相关文章
- Ubuntu下搭建NodeJS+Express WEB开发框架
Ubuntu下搭建NodeJS+Express WEB开发框架 2012-12-27 15:06 作者: NodeJSNet 来源: 本站 浏览: 2,966 次阅读 我要评论暂无评论 字号: 大 中 ...
- 转:基于node的web开发框架Express入门
JavaScript 标准参考教程(alpha) 草稿二:Node.js Express框架 GitHub TOP Express框架 来自<JavaScript 标准参考教程(alpha)&g ...
- node.js上除了Express还有哪些好用的web开发框架
老司机都有体会, 开发本身没有多难, 最纠结其实是最初的技术和框架选型, 本没有绝对的好坏之分, 可一旦选择了不适合于自己业务场景的框架, 将来木已成舟后开发和维护成本都很高, 等发现不合适的时候更换 ...
- 『005』Web集群
『006』索引-The Web cluster 准备更新中
- 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...
- Node.js 入门手册:那些最流行的 Web 开发框架
这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...
- 『TensorFlow』分布式训练_其三_多机分布式
本节中的代码大量使用『TensorFlow』分布式训练_其一_逻辑梳理中介绍的概念,是成熟的多机分布式训练样例 一.基本概念 Cluster.Job.task概念:三者可以简单的看成是层次关系,tas ...
- 『TensorFlow』分布式训练_其二_单机多GPU并行&GPU模式设定
建议比对『MXNet』第七弹_多GPU并行程序设计 一.tensorflow GPU设置 GPU指定占用 gpu_options = tf.GPUOptions(per_process_gpu_mem ...
- WEB开发框架性能排行与趋势分析
WEB开发框架性能基准测试解读与趋势分析 TechEmpower的<Web Framework Benchmarks>性能基准测试,是关注Web开发框架发展的重要途径.但是内容数据众多,每 ...
随机推荐
- 关于Java中的构造方法
关于构造方法: 1.构造方法又叫构造函数/构造器. 2.构造方法语法结构中"返回值类型"不需要指定,也不能写void,如若写void,则变成普通方法. 3.构造方法有返回值,和当前 ...
- PHP生成图形验证码
在建站过程中,很多时候都会需要用户验证验证码等操作,比如:注册.登录.发表评论.获取资源等等,一方面可以验证当前用户的行为是否是爬虫.机器人等情况,给网站数据统计产生影响:另一方面可以防止用户大量刷取 ...
- 数组容器(ArrayList)设计与Java实现,看完这个你不懂ArrayList,你找我!!!
数组容器(ArrayList)设计与Java实现 本篇文章主要跟大家介绍我们最常使用的一种容器ArrayList.Vector的原理,并且自己使用Java实现自己的数组容器MyArrayList,让自 ...
- ArrayList源码深度剖析,从最基本的扩容原理,到魔幻的迭代器和fast-fail机制,你想要的这都有!!!
ArrayList源码深度剖析 本篇文章主要跟大家分析一下ArrayList的源代码.阅读本文你首先得对ArrayList有一些基本的了解,至少使用过它.如果你对ArrayList的一些基本使用还不太 ...
- 简记清空C语言输入残留内容
为了在命令行程序中实现和用户的交互,我们编写的程序的运行过程中往往涉及到对标准输入/输出流的多次读写. 在C语言中接受用户输入这一块,有着一个老生常谈的问题:"怎么样及时清空输入流中的数据? ...
- word-break,word-wrap,line-break相关知识
1.word-break: break-word与word-wrap: break-word的区别? 答:计算最小宽度(width: min-content)时有区别,word-break: brea ...
- 关于2022年3月9日之后Typora登录不了--已解决
p.s.今天是2022.7.27,软件版本:13.6.1 (以下所有方法,亲自尝试后整理出的) 报错信息: This beta version of typora is expired, please ...
- CSp2021/ NOIp2021 游记
目录 Part 1. CSp2021 J S Part 2. NOIp2021 总结 Part 1. CSp2021 J 好水 挂飞 239pts,1= S 好毒瘤 rnm,写了个暴力就去搞 T2 \ ...
- linux常用命令和快捷键收集
find / -name php #查找根目录下所有包含 php 字符的文件和目录 find / -ctime 1 #查找最近一天下载的文件和目录 yum install lrzsz #安装上传下载组 ...
- linux 文件存放目录
Linux不靠文件扩展名区分文件类型(windous病毒和木马不能在linux里面运行) 所有的存储设备都必须挂载之后才能使用(包括硬盘,U盘和光盘),例如给它手工给它分配盘符 Linux所有内容以文 ...