一、前言                                                          

本次内容主要包括:

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. easyui combobox 在datagrid中动态加载数据

    场景:datagrid 中用编辑框修改数据,有一个列使用的combobox  在可编辑的时候需要动态绑定数据,这个数据是在根据其他条件可变的 思路:在每次开启编辑框的时候动态绑定数据, datagri ...

  2. 洛谷 P1160 队列安排

    题目描述 一个学校里老师要将班上 NNN 个同学排成一列,同学被编号为 $1-N$ ,他采取如下的方法: 先将 111 号同学安排进队列,这时队列中只有他一个人: 2−N2-N2−N 号同学依次入列, ...

  3. json-lib和dom4j实现JSON转XML

    package com.geostar.gfstack.operationcenter.test; import net.sf.json.JSONObject; import net.sf.json. ...

  4. python之旅六【第六篇】模块

    json和pickle 用于序列化的两个模块json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换 json模块提供了四 ...

  5. Alice's Chance POJ - 1698(按时间点建边)

    Alice's Chance Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7791   Accepted: 3174 De ...

  6. 爬虫_拉勾网(selenium)

    使用selenium进行翻页获取职位链接,再对链接进行解析 会爬取到部分空列表,感觉是网速太慢了,加了time.sleep()还是会有空列表 from selenium import webdrive ...

  7. js-元素相关

    获取元素方法一 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如: <script ...

  8. 配置日志中显示IP

    package com.demo.conf; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback ...

  9. GCD HDU - 1695(容斥原理)

    要求从满足gcd(x, y) = k的对数,其中x属于[1, n], y属于[1, m] gcd(x, y) = k ==>gcd(x/k, y/k) =1 x/k属于[1, n/k], y/k ...

  10. C语言中类型转换#大写字母转小写字母和小写字母转大写字母案例。

    先让我们来看个很重要的东西,还是ASCII码. 十进制:A-Z:65-90十进制:a-z:97-122 了解这个很重要. 现在我们先举例子大写字母转小写字母案例: #include <stdio ...