Express框架

Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能。

Express 框架核心特性:

  • 可以设置中间件来响应 HTTP 请求。
  • 定义了路由表用于执行不同的 HTTP 请求动作。
  • 可以通过向模板传递参数来动态渲染 HTML 页面。

安装:

npm install express --save

可能需要的中间件:

body-parser - Node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。

cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

multer - Node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。

cors - Node.js跨域解决方案,当需要跨域访问时使用。

 npm install body-parser --save
npm install cookie-parser --save
npm install multer --save
npm install cors --save

使用express创建服务端:

 var express = require('express');
var app = express();
//分配路由
app.get('/', function (req, res) {
res.send('Hello World');
})
app.get('/about', function (req, res) {
res.send('about web');
})
app.post('/user', function (req, res) {
res.send('user data');
})
//创建服务器并监听8080端口
var server = app.listen(8080)

访问 http://127.0.0.1:8080:

界面输出'Hello World'

访问 http://127.0.0.1:8080/about:

界面输出'about web'

访问 http://127.0.0.1:8080/user:

界面输出'user data'

 Express的路由分为get和post两种。两者用法类似,但post支持的参数长度更大。

express+axios实现vue前后端跨域访问(拓展)

axios是对ajax封装后的模块,使用更简单,可以与express搭配使用,实现前后端分离跨域访问。

安装axios:

npm install axios --save

使用express创建路由:

 //router.js
const express = require('express');
const router = express.Router(); router.get('/login', (req, res, next) => {
//to do login
});

创建跨域访问:

 const routerApi = require('./router');
const bodyParser = require('body-parser'); // post 数据需要
const express = require('express');
const cors = require('cors');//跨域访问依赖的中间件
const app = express(); // 允许请求的域名,如果是*则允许所有域名访问本服务端(必须写在所有注册路由前)
app.use(cors({ origin: 'http://127.0.0.1:8080' }));
//解析Json
app.use(bodyParser.json());
//注册路由
app.use('/api', routerApi);
//创建服务端,监听端口
app.listen(3000, '0.0.0.0');
console.log('success listen at port:3000......');

前端main.js(前端以Vue为例):

 import Vue from 'vue'
import axios from 'axios' //使用ElementUI为PC前端框架
Vue.use(ElementUI)
// 请求服务器的Url
axios.defaults.baseURL = 'http://127.0.0.1:3000/';
//设置post默认类型为json
axios.defaults.headers.post['Content-Type'] = 'application/json';
Vue.prototype.axios = axios

前端UI请求:

 this.axios.get("/api/login", {
params: {
userName: 'Jimmy',
password: '123456'
}
})
.then(res => {
//登录结果...
})
.catch(error => {
console.log(error.response);
});

Node.js入门教程 第五篇 (Express框架)的更多相关文章

  1. Node.js入门教程 第三篇 (模块及路由)

    Node.js的模块 Node.js的模块与传统面向对象的类(class)不完全相同.Node.js认为文件即模块,即一个文件是一个模块.单一文件一般只专注做一件事情,保证了代码的简洁性. 创建模块: ...

  2. Node.js入门教程 第四篇 (流及文件操作)

    流 Stream是Node.js中的抽象接口,有不少Node.js对象实现自Stream. 所有的Stream对象都是EventEmitter 的实例. 例如:fs模块(用于读写操作文件的模块) fs ...

  3. Node.js入门教程 第六篇 (连接使用MySql)

    连接使用MySql 安装MySql模块: npm install mysql 创建连接: const mysql = require('mysql') // 连接 mysql 服务器 const co ...

  4. 【特别推荐】Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  5. Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  6. node.js 入门教程(beginnder guide

    非常好的教程: node入门: JavaScript与Node.js JavaScript与你 简短申明 服务器端JavaScript “Hello World” 一个完整的基于Node.js的web ...

  7. Node.js入门教程:Node.js如何安装配置并部署第一个网站

    前言:作为一个资深的前端开发人员,不懂的Node.js 那你绝对是不能跟别人说你是资深的前端程序猿滴! 今天洋哥就来和大家一起学习被大牛称之为前端必学的技能之一Node! 那么Node到底是什么呢? ...

  8. node.js入门学习(五)--Demo模块化改造

    1.node.js中模块的分类 1)node.js内置模块(核心,原生) 所有内置模块在安装node.js时就已经编译成二进制文件,可以直接加载运行(速度较快),部分内置模块,在node.exe这个进 ...

  9. 【Node.js】一、搭建基于Express框架运行环境+更换HTML视图引擎

      1)安装express generator生成器 这个express generator生成器类似于vue-cli脚手架工具,用来创建一个后端项目,首先我们要对生成器进行全局安装,在cmd中输入下 ...

随机推荐

  1. mysql 主主从配置

    配置主服务器:主服务器1 Ip:  192.168.0.1 主服务器2 Ip:  192.168.0.2 主服务器1配置 2.1.修改mysql配置文件 vim /etc/my.conf Server ...

  2. 对TD tree系统评价及改进

    该系统是由石家庄铁道大学2017级信息学院的同学研发并改进,分享给我们18级新生的一份体验,这项app可安装在任意一个智能手机上,当听到学长们像我们介绍这款app的时候,着实让我惊呆了,惊叹学长们的编 ...

  3. 百度地图WEB端判断用户是否在网格范围内

    在pc端设置商家的配送范围,用户在下单时,根据用户设置的配送地点判断是否在可配送范围内,并给用户相应的提示. 下面说下我的实现思路: 1.用百度地图在PC端设置配送范围,可拖拽选择 2.根据用户设置的 ...

  4. kubernetes部署jenkins(Docker in Docker)及认证

    引言 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件. 本文将Jenkins的master与slave置于Pod中,部署在namespace:jenk ...

  5. python小基础

    1.计算机基础知识 中央处理器 CPU 人的大脑 内存 缓存数据 临时记忆 硬盘 储存数据 永久记忆 什么是操作系统 ? 控制计算机工作的流程 什么是应用程序? 安装在操作系统之上的软件 2.pyth ...

  6. BOM之本地数据存储

    JavaScript中本地存储数据常用的,且兼容性较好的有两种方式,cookie和Storage.另外还可以使用location.hash临时存储少量关键信息. 一    location.hash ...

  7. 指尖前端重构(React)技术调研分析

    摘要:重构前的技术文档调研与分析,包括技术选型为什么选择react,应用过程中的注意事项等. 一.为什么选择React React是当前前端应用最广泛的框架.三大SPA框架 Angular.React ...

  8. Go微服务容错与韧性(Service Resilience)

    Service Resilience是指当服务的的运行环境出现了问题,例如网络故障或服务过载或某些微服务宕机的情况下,程序仍能够提供部分或大部分服务,这时我们就说服务的韧性很强.它是微服务中很重要的一 ...

  9. 如何在服务器中安装mysql 以及安装禅道

    安装mysql:以下命令在xshell 中输入: 1.卸载mysql :yum -y remove mysql* 2.查找mysql命名安装的所有文件: find / -name mysql  只能删 ...

  10. Java匹马行天下之Java帝国的崛起(大结局)

    Java匹马行天下之Java帝国的崛起大结局 前言: [博客*缘] 网络真情伴, 博客友谊连. 笑中藏泪暖中寒. 回想那些悲喜, 苦涩也缠绵. 往事难回首, 新篇染旧言. 世间多少梦能全. 感谢相牵, ...