Express基础使用和基础配置

227 阅读2分钟

Express 简介

Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。

Express 使用

  1. 初始化package.json
npm init

疯狂回车直接使用默认值就好。

  1. 使用npm快速得到Express
npm i express
  1. 新建app.js文件,编写代码如下
const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.status(200).send("Get Home Page ...")
});

app.listen(3000);
  1. 修改package.json文件,将main属性值改为app.js

  2. 运行app.js启动服务

node app
  1. 浏览器访问http://localhost:3000查看结果

超级简单就拥有了自己的服务有没有,让前端同学也能自己给自己提供接口了。

Express 配置

express没有太多需要你来配置的,这里我说一下比较常用的。

返回页面

  1. 根目录新建index.html,内容随便写。

  2. app.js 新增如下代码。

app.get('/index', (req, res) => {
	res.sendFile(__dirname + '/index.html')
})
  1. 重启服务,访问http://localhost:3000/index查看结果

配置静态资源访问目录

上面返回页面可以通过这种方式变简单,因为不可能每次写一个页面就加一个接口。

  1. 新建public目录,可以把index.html移进去。

  2. app.js新增如下代码。

app.use(express.static(__dirname + '/public'));
  1. 重启服务,访问http://localhost:3000/index.html查看结果

使用 app.use()第一个参数可以是字符串,对该有该前缀地址的进行拦截,例如:

app.use('/statics', express.static(__dirname + '/statics'));

这样就需要访问http://localhost:3000/statics/index.html才能访问到index.html

不同类型的请求

  • get请求

app.get('', (req, res) => {})
  • post请求

app.post('', (req, res) => {})
  • put请求

app.put('', (req, res) => {})
  • delete请求

app.delete('', (req, res) => {})
  • 匹配所有类型的请求

app.all('', (req, res) => {})

跨域配置

跨域是什么就不解释了,不了解的直接网上去查,不想了解的直接用。

方案一

  1. 下载cors
npm i cors
  1. 使用cors
const cors = require('cors');
app.use(cors());
  1. 重启服务验证结果

方案二

  1. 添加中间件拦截器,在app.js中添加如下代码
app.use((req, res, next) => {
    // 一定要执行next函数
    next();
})
  1. 查看浏览器报错信息,根据自己需求添加跨域配置,例如一定会出现的跨域报错信息 image.png
    看我选中的那一段,就是需要进行的跨域的配置。

  2. 修改中间件拦截器,代码如下

app.use((req, res, next) => {
	res.set('Access-Control-Allow-Origin', 'http://localhost:8080');
	next();
})
  1. 重启服务,验证结果

完整app.js代码

const express = require('express');
const cors = require('cors');
const app = express();

app.use(express.static(__dirname + '/public'));
app.use(cors());

// app.use((req, res, next) => {
// 	res.set('Access-Control-Allow-Origin', 'http://localhost:8080');
// 	next();
// })

app.get('/', (req, res) => {
    res.status(200).send("Get Home Page ...")
});

app.listen(3000);