一、前言                                                          

本次内容主要包括:

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基础的更多相关文章

  1. 玩转Node.js(四)-搭建简单的聊天室

    玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...

  2. 深入理解node.js异步编程:基础篇

    ###[本文是基础内容,大神请绕道,才疏学浅,难免纰漏,请各位轻喷] ##1. 概述 目前开源社区最火热的技术当属Node.js莫属了,作为使用Javascript为主要开发语言的服务器端编程技术和平 ...

  3. Node.js(window)基础(1)——用cmd命令行访问某一文件夹下的js文件

    一.安装,从官网上下载安装,安装基本一直点击下一步就行.注意:node.js基于Python的,安装node.js之前电脑上要安装Python,最好是Python2.7或2.6. 二.cmd进入命令行 ...

  4. Node.js(window)基础(2)——node环境下的模块,模块间调用

    参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...

  5. Node.js实战(四)之调试Node.js

    当项目逐渐扩大以后,功能越来越多,这时有的时候需要增加或者修改,同时优化某些功能,就有可能出问题了.针对于线上Linux环境我们应该如何调试项目呢? 别怕,Node.js已经为我们考虑到了. 通过 n ...

  6. web基础 (四) JavaScript基础

    JavaScript 简史略过…… 一.Javascript结构   ECMAScript  ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标 ...

  7. 从零开始学习Node.js例子四 多页面实现数学运算 续二(client端和server端)

    1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = r ...

  8. 从零开始学习Node.js例子四 多页面实现数学运算 续一(使用connect和express框架)

    1.使用connect框架 .use方法用于绑定中间件到connect服务器,它会配置一系列在接到请求时调用的中间件模块,此例中我们要配置的中间件有favicon logger static rout ...

  9. 从零开始学习Node.js例子四 多页面实现数学运算

    app-node.js ; var http = require('http'); var htutil = require('./htutil'); var server = http.create ...

随机推荐

  1. Microsoft Bot Framework with LUIS

    今年微软的编程之美的主题是“对话即平台”,“人工智能”,要求参赛选手用到Bot Framework与Cognitive Services. 大多数人应该对这两个技术都不怎么熟悉吧,我就在这里写写自己所 ...

  2. 设置和安装 BizTalk Server 2016 的必备组件

    设置服务器,然后安装和配置软件必备组件. 加入本地管理员组       若要安装并配置 BizTalk Server,在本地计算机上使用管理员帐户登录到服务器. 向本地管理员组添加任何管理 BizTa ...

  3. codeforces722B

    Verse Pattern CodeForces - 722B You are given a text consisting of n lines. Each line contains some ...

  4. Nginx CGI反向代理对照

    陶辉104 CGI是什么? CGI全称是“通用网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具

  5. 【C/C++】实现牛顿迭代

    #include<bits/stdc++.h> using namespace std; /*(x+2)^2 +1 -2(x-1)^2+7 */ double f(double x){ - ...

  6. BZOJ5119 生成树计数(prufer+生成函数+分治FFT+多项式exp)

    https://www.luogu.org/problemnew/solution/P4002 神树的题解写的很清楚了.稍微补充: 1.[x^i]ln(A(ax))=a^i[x^i]ln(A(x)), ...

  7. Balanced Number HDU - 3709 数位dp

    题意: 给出范围 算出 满足  选取一个数中任一一个 树作为支点  两边的数分别乘以到中心的距离和 左和等于右和   的数有多少个 数位DP题 状态转移方程为dp[pos][x][state]=dp[ ...

  8. Codeforces1037F Maximum Reduction 【单调栈】

    题目分析: 没啥好说的,会单调栈就会做. 代码: #include<bits/stdc++.h> using namespace std; ; ; int n,k; int pre[max ...

  9. centos部署nextcloud

    简介 Nextcloud是一套用于创建和使用文件托管服务的客户端-服务器软件.它在功能上类似于Dropbox,虽然Nextcloud是免费的和开源的,允许任何人在私人服务器上安装和操作它.与Dropb ...

  10. MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.

    转自:https://blog.csdn.net/zhaoqi5705/article/details/12087649?locationNum=15 MySql.Data.MySqlClient.M ...