node.js(基础四)_express基础
一、前言
本次内容主要包括:
1、express的基本用法
2、express中的静态服务
3、express中art-template的使用
4、express中body-parser的使用
5、expression 中express-session的使用
二、基础内容
1、express的基本使用
(1)express是node.js中封装好的一个模块,让我们更加方便的来创建一个服务器
//0安装好这个模块之后引入
var express = require('express') // 1. 创建 app
var app = express() //2. 用app.get()的方式替代了以前server.on()的方式
app.get('/', function (req, res) {
res.send('hello world')
})
//3.设置服务器端口
app.listen(3000, function () {
console.log('express app is running ...')
})
2、express中的静态服务
例子项目目录结构如图:

第一种方式:
app.use('/public/',express.static('./public/'))
可以通过如下路径来访问:

第二种方式:
//省略了第一个参数,但是在访问的时候不能带上public, 如果加上反而出错
app.use(express.static('./public/'))
通过如下路径来访问:

第三种方式:相当于给public加上一个别名
//访问的时候将原来的public替换为这个别名
app.use('/a/',express.static('./public/'))
通过如下路径访问:

3、express中art-template的使用参考:
第一步:安装
//安装
npm install --save art-template
npm install --save express-art-template
第二步:配置第一个参数配置的是文件后缀名,需要渲染的文件的后缀名这里就填写对应的
app.engine('html', require('express-art-template'));
第三步:使用,这里会默认到views目录下面去找对应的文件名,所以我们把.html文件都放views目录下是有意义的
//请求/的时候跳转到index.html中
////这里会默认去views下面目录下去找index.html
app.get('/', function(req, res) {
res.render('index.html', {
comments:comments
})
});
注意:可以通过下面代码来更改默认的文件夹
app.set('xxxx', 目录路径 )
第四步:渲染index.html模板
https://www.cnblogs.com/chyingp/p/nodejs-learning-express-body-parser.html
4、express中默认是get提交,如果要使用post方式提交必须安装插件
第一步:打开network看看post提交的数据保存在哪里

第二步:有一个body-parser的插件用来接收post提交的数据
先安装插件:
//安装body-parser插件
npm install --save body-parser
配置以及使用
//安装完插件之后引入
var bodyParse = require('body-parser') //parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false})) //parse application/json
app.use(bodyParser.json()) //处理post提交的数据
app.post('/post',function(req, res){ })
5、express-session的基本使用:参考文档https:/github.com/expressjs/session
session :可以帮助我们记录登录状态,
安装
//安装express-session cnpm install express-session
配置:
//引入
var session = require('express-session') //配置session
app.use(session({
secret: 'keywoard cat',
resave: false,
saveUninitialized:true
}))
使用:
//创建session数据
req.session.username = 'name' //获取 req..session.username
三、总结
1、使用第三方工具nodemon解决重启node.js服务器问题,需要如下操作:
//1、在当前目录下输入下面安装nodemon
npm install --global nodemon //2、用来执行就不需要重启了
nodemon xxx.js
node.js(基础四)_express基础的更多相关文章
- 玩转Node.js(四)-搭建简单的聊天室
玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...
- 深入理解node.js异步编程:基础篇
###[本文是基础内容,大神请绕道,才疏学浅,难免纰漏,请各位轻喷] ##1. 概述 目前开源社区最火热的技术当属Node.js莫属了,作为使用Javascript为主要开发语言的服务器端编程技术和平 ...
- Node.js(window)基础(1)——用cmd命令行访问某一文件夹下的js文件
一.安装,从官网上下载安装,安装基本一直点击下一步就行.注意:node.js基于Python的,安装node.js之前电脑上要安装Python,最好是Python2.7或2.6. 二.cmd进入命令行 ...
- Node.js(window)基础(2)——node环境下的模块,模块间调用
参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...
- Node.js实战(四)之调试Node.js
当项目逐渐扩大以后,功能越来越多,这时有的时候需要增加或者修改,同时优化某些功能,就有可能出问题了.针对于线上Linux环境我们应该如何调试项目呢? 别怕,Node.js已经为我们考虑到了. 通过 n ...
- web基础 (四) JavaScript基础
JavaScript 简史略过…… 一.Javascript结构 ECMAScript ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标 ...
- 从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)
1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = r ...
- 从零开始学习Node.js例子四 多页面实现数学运算 续一(使用connect和express框架)
1.使用connect框架 .use方法用于绑定中间件到connect服务器,它会配置一系列在接到请求时调用的中间件模块,此例中我们要配置的中间件有favicon logger static rout ...
- 从零开始学习Node.js例子四 多页面实现数学运算
app-node.js ; var http = require('http'); var htutil = require('./htutil'); var server = http.create ...
随机推荐
- Linux下的好用的编辑软件Remarkable
Linux下的好用的编辑软件Remarkable最近着手开始学习Linux,就想着找一款好用的编辑器作笔记,在网上爬了些贴选择了Remarkable.官网崩了,有没有梯子,废了好大力气才装好.于是把资 ...
- Hibernate 注解映射
工作中遇到hibernate映射的一些问题,这里总结一下 (特别是测试时,许多数据并不能有效关联.所以@NotFound 很重要) 一,假设有2张表user,company 我们知道,一个用户属于一个 ...
- vim复制粘帖代码
参照:https://blog.csdn.net/sodawaterer/article/details/61918370
- [洛谷P1273] 有线电视网
类型:树形背包 传送门:>Here< 题意:给出一棵树,根节点在转播足球赛,每个叶子节点是一个观众在收看.每个叶子结点到根节点的路径权值之和是该点转播的费用,每个叶子节点的观众都会付val ...
- 局域网共享hfs 软件使用
前言 由于想从局域网同学电脑上偷点小片,又不想用u盘拷贝.所有在同学电脑上打开hfs软件,通过自己电脑ie浏览器(chrome不行报错)下载即可. 流程 1.两台电脑在同一局域网下,在同学电脑上打开h ...
- new Date()导致日期增加了一天
问题是:将字符串 "Sun Nov 12 14:00:00 CST 2017" 转成Date类型 有一个简单的方法是直接使用new Date(),但是这个方法对于某些日期的计算, ...
- LOJ #2537. 「PKUWC 2018」Minimax (线段树合并 优化dp)
题意 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点. 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入 ...
- RequestContextHolder 很方便的获取 request
在 Spring boot web 中我们可以通过 RequestContextHolder 很方便的获取 request. ServletRequestAttributes requestAttri ...
- Coding and Paper Letter(五十八)
资源整理. 1 Coding: 1.支持TMS.WMTS标准瓦片下载,支持百度地图瓦片.高德地图瓦片.腾讯地图瓦片.天地图.ArcServer Rest瓦片.ArcServer本地缓存切片.geose ...
- 做事从来不坚持的我又开始学习PyQt了。。。。。。
链接附上,不再更新:PyQt5图形界面编程 第一部分 第一个程序 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApp ...