我目前正在学习 node.js 我有一个关于 PUT 请求的问题
我可以创建对象 并在 URL 中看到它 但我不知道如何写一个编辑请求 例如改变车辆的价格? 我很想知道如何编写编辑请求
这是我的 HTML 代码
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Add car to the storege</h1>
<form action="/addCar" method="post">
<label for="">Car model</label>
<input name="car_model" type="text">
<label for="">Color</label>
<input name="color" type="text">
<label for="">Engine capacity</label>
<input name='Engine' type="number">
<label for="">Price</label>
<input name='price' type="number">
<label for="">id</label>
<input name='id' type="number">
<input type="submit" value="Send">
</form>
</body>
</html>
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const port = 3002
const Joi = require('@hapi/joi');
app.use(bodyParser.urlencoded({ extended: true }))
let carStorege = []
app.post('/addCar', (req,res) => {
const schema = Joi.object({
car_model: Joi.string().required(),
color: Joi.string().required(),
Engine: Joi.number().required(),
id: Joi.number().required(),
price: Joi.number().required()
})
const validation = schema.validate(req.body)
if(validation.error){
res.send('something worng!')
}
carStorege.push(req.body)
console.log(req.body)
res.send('<h1>Upload success !</h1>')
})
app.get('/', (req, res) => {
res.sendFile(__dirname+'/addCar.html')
})
app.get('/carStorege', (req, res)=> {
res.send(carStorege)
res.sendFile(__dirname+'/carStorge.html')
})
// put requset to edit the object..
app.listen(port, () => console.log('srever is live'))
答案 0 :(得分:0)
使用 experss.js 发送 PUT 请求
使用 methodOverride
和 <input type="hidden" name="_method" value="PUT" />
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Add car to the storege</h1>
<form action="/addCar" method="post">
<input type="hidden" name="_method" value="PUT" />
<label for="">Car model</label>
<input name="car_model" type="text">
<label for="">Color</label>
<input name="color" type="text">
<label for="">Engine capacity</label>
<input name='Engine' type="number">
<label for="">Price</label>
<input name='price' type="number">
<label for="">id</label>
<input name='id' type="number">
<input type="submit" value="Send">
</form>
</body>
</html>
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const port = 3002
const Joi = require('@hapi/joi');
var methodOverride = require('method-override')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(methodOverride(function (req, res) {
console.log(req.body);
if (req.body && typeof req.body === 'object' && '_method' in req.body) {
// look in urlencoded POST bodies and delete it
console.log('sss');
var method = req.body._method
delete req.body._method
return method
}
}))
let carStorege = []
app.post('/addCar', (req, res) => {
const schema = Joi.object({
car_model: Joi.string().required(),
color: Joi.string().required(),
Engine: Joi.number().required(),
id: Joi.number().required(),
price: Joi.number().required()
})
const validation = schema.validate(req.body)
if (validation.error) {
res.send('something worng!')
}
carStorege.push(req.body)
console.log(req.body)
res.send('<h1>Upload success !</h1>')
})
app.get('/', (req, res) => {
res.sendFile(__dirname + '/addCar.html')
})
app.get('/carStorege', (req, res) => {
res.send(carStorege)
res.sendFile(__dirname + '/carStorge.html')
})
app.put('/addCar', function (req, res) {
var car = req.car;
console.log(req.car)
res.send('<h1>sss success !</h1>')
//do update
});
app.listen(port, () => console.log('srever is live'))