Node.js Request用法
server.js
const express = require('express');
const bodyParser = require('body-parser');
const multer = require('multer'); // 解析form-data数据
const UUID = require('uuid'); //生成一串uuid
const storage = multer.diskStorage({
destination: 'src/request/upload',
filename: (req, file, cb) => {
// 后缀名
let extName = file.originalname.slice(file.originalname.lastIndexOf('.'))
// 文件名
let fileName = UUID.v1() + file.originalname.split('.')[0];
cb(null, fileName + extName);
}
})
const upload = multer({
storage: storage,
limits: {
fieldSize: '2MB' // 最大上传文件大小
}
});
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/json', (req, res) => {
res.json(req.body);
})
app.post('/form', (req, res) => {
res.json(req.body);
})
app.post('/formData', upload.single('avatar'), (req, res) => {
res.json(req.body);
})
app.listen(3000, () => console.log('server running at http://localhost:3000'));
client.js
const request = require('request');
const fs = require('fs');
// 发送json数据请求头
const optionsA = {
url: 'http://localhost:3000/json',
method: 'POST',
json: true,
headers: {
'Content-Type': 'application/json'
},
body: {
name: 'xiaoming',
age: 21
}
}
// 发送form表单数据请求头
const optionsB = {
url: 'http://localhost:3000/form',
method: 'POST',
json: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
form: {
name: 'xiaoming',
age: 21
}
}
// 发送form-data数据请求头
const optionsC = {
url: 'http://localhost:3000/formData',
method: 'POST',
json: true,
headers: {
'Content-Type': 'multipart/form-data'
},
formData: {
name: 'xiaoming',
age: 21,
avatar: {
value: fs.createReadStream('../puppeteer/mi.png'),
options: {
filename: 'mi.png', // 文件名称
contentType: 'image/png' // 文件类型
}
}
}
}
request(optionsA, (err, response, body) => {
if (err) throw err;
console.log(body);
})
request(optionsB, (err, response, body) => {
if (err) throw err;
console.log(body);
})
request(optionsC, (err, response, body) => {
if (err) throw err;
console.log(body);
})