一。express
1.准备工作 创建express文件夹 打开终端 安装node npm
2.开始 创建package.json *(npm install)
3.导入express包(npm install express)
4.创建main.js文件 根文件
5. main.js 引入 const express = require("express")
6.并创建web服务器 const app = express()
7.并使用服务器名.listen()方法启动服务器
app.listen(3000, () => { console.log("服务器启动于http://127.0.0.1:3000"); })
#main.js 代码示例
const express = require('express')
const app = express()
app.listen(3000, (err) => {
if(!err) {
console.log('服务器已启动 端口号3000:::')
console.log('http://127.0.0.1:3000')
}
})
#当前目录图
#试运行 main.js (node ./main.js)运行成功示意图
二。
1.创建api 提供ajax 请求地址 (res 是成功后的回调函数)
1.0 首先处理跨域问题 跨域(不同协议 不同域名 不同端口 )
1.使用cors跨域处理 安装cors (npm install cors)
并在main.js引入
const cors = require('cors');
app.use(cors());
2. 全局 中间件 解决所有路由的 跨域问题 main.js
app.all('*',function (req,res,next) {
res.header('Access-Control-Allow-Origin','*')
res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type')
res.header('Access-Control-Allow-Methods','GET,POST,OPTIONS')
next()
})
1.1 get 请求
main.js
app.get('/hello', (req, res) => {
//获取参数req.query
res.send('hello world')
//响应数据给客户端
})
ajax (axios示例)
axios.get('http://127.0.0.1:3000/hello').then(res => {
console.log(res)
})
1.2 post 请求
post接收参数需要使用解析中间件 body-parser (npm install body-parser)
const bodyParser = require('body-parser')
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
main.js
app.post('/login', (req, res) => { // res 是成功后的回调函数
// 获取参数 console.log(req.body)
res.send('hello world')
// res.send({
// Status:200,
// msg: 'success',
// data: {
// code: 200,
// data: {
// },
// message: 'success'
// },
// })
})
ajax (axios示例)
axios.post('http://127.0.0.1:3000/login', {name: 'wk'}).then(res => {
console.log(res)
})
接口获取request参数的三种方式
console.log(req.query)
console.log(req.params)
console.log(req.body)
1.3获取请求头数据
main.js
app.post('/login', (req, res) => {
console.log(req.headers)
res.send('hello world')
})
//请求头数据req.headers
ajax (axios示例)
axios.post('http://127.0.0.1:3000/login', data, { headers: { timestamp:'timestamp', sign:'sign', token: ''}}).then(res => {
console.log(res)
})
res.send() 设置返回数据
// 添加模块api 用户
app.use('/user', require('./api/user'))
user.js
var express = require('express')
var router = express.Router()
const fs = require('fs')
const path = require('path')
router.post('/register', (req, res) => {})
module.exports = router
额外功能:配置https
const express = require('express')
const app = express()
const https = require('https');
const fs = require('fs');
// node接入证书
const options = {
cert: fs.readFileSync('./ssl/xyz.pem'),
key: fs.readFileSync('./ssl/xyz.key')
}
let server = https.createServer(options, app)
server.listen(8443, (err) => {
if(!err) {
console.log('服务器已启动 端口号8443:::')
}
})
app.all('*',function (req,res,next) {
res.header('Access-Control-Allow-Origin','*')
res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type')
res.header('Access-Control-Allow-Methods','GET,POST,OPTIONS')
next()
})
app.get('/hello', (req, res) => {
//获取参数req.query
res.send('hello world')
//响应数据给客户端
})