You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.1 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//1.导入express
const express = require('express');
//2.创建web服务器
const app = express();
//const cors = require(cors)
//3. 启动服务器
app.listen(8081, () => {
console.log('express server running at http://127.0.0.1:8081');
})
//app.use(cors())
//4
//4.监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容
// 2.Express 路由
// 在 Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。
//
// 2.1 Express路由组成
// Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数
app.get('/user', (req, res) => {
//调用 express 提供的 res.send() 方法,向客户端响应一个文本字符串
res.send({ name: 'zs', age: 20, gender: '男' })
})
app.post('/userpost', (req, res) => {
res.send('请求成功')
})
app.get('/age', (req, res) => {
//调用 express 提供的 res.send() 方法,向客户端响应一个文本字符串
console.log(req.query);
res.send(req.query)
})
app.get('/user/:id/:username', (req, res) => {
res.send(req.params)
console.log(req.params);
})
app.use(express.static('public'))
app.use(express.static('files'))
// 挂载路径前缀
// 如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下的方式:
app.use('/pub', express.static('pub'))
// 2.3 模块化路由
// 为了方便对路由进行模块化的管理Express 不建议将路由直接挂载到 app 上,
// 而是推荐将路由抽离为单独的模块。
//1.导入路由模块
const router = require('./router.js')
//2. 注册路由模块
app.use(router)
// 导入路由模块
const apiRouter = require('./apiRouter.js')
// 把路由模块,注册到 app 上
app.use('/api', apiRouter)
// 7. CORS 跨域资源共享
// 解决接口跨域问题的方案主要有两种:
//
// CORS主流的解决方案推荐使用
// JSONP有缺陷的解决方案只支持 GET 请求)
// 7.1 使用 cors 中间件解决跨域问题
// cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件,可以很方便地解决跨域问题。
// 使用步骤分为如下 3 步:
//
// 运行 npm install cors 安装中间件
// 使用 const cors = require(cors) 导入中间件
// 在路由之前调用 app.use(cors()) 配置中间件
// CORS Cross-Origin Resource Sharing跨域资源共享由一系列 HTTP 响应头组成,这些 HTTP 响应头决定浏览器是否阻止前端 JS 代码跨域获取资源。
//
// 浏览器的同源安全策略默认会阻止网页“跨域”获取资源。但如果接口服务器配置了 CORS 相关的 HTTP 响应头,就可以解除浏览器端的跨域访问限制。
//
//https://blog.csdn.net/weixin_45691995/article/details/139706869
//https://zhuanlan.zhihu.com/p/669087801
//https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html#ic_osx_inst
//https://www.runoob.com/nodejs/nodejs-build-app.html
//https://clwy.cn/courses/fullstack-node
//https://clwy.cn/chapters/fullstack-node-sequelize
//https://apifox.com/