[英]trying to update user getting error Cannot POST /update-user
您好,當我嘗試在頁面上更新用戶時,我收到錯誤無法 POST /update-user 找不到問題,有人可以看到下面的代碼是否已完成
索引.js
$('#add_user').submit(function(event){
alert("Informacija išsaugota!")
})
$('#update-user').submit(function(event){
event.preventDefault();
let unindexed_array =$(this).serializeArray();
let data = {}
$.map(unindexed_array,function(n,i){
data[n['name']]= n['value']
})
console.log(data)
let request = {
"url" : `http://localhost:3000/api/users/${data.id}`,
"method" : "PUT",
"data" : data
}
$.ajax (request).done(function(response){
alert("Naudotojas Atnaujintas!")
})
})
if(window.location.pathname == "/"){
$ondelete=$(".table tbody td a.delete");
$ondelete.click(function(){
let id = $(this).attr("data-id")
let request = {
"url" : `http://localhost:3000/api/users/${id}`,
"method" : "DELETE",
}
if(confirm("Ar tikrai norite ištrinti įraša?")){
$.ajax (request).done(function(response){
alert("Naudotojas ištrintas!")
location.reload()
})
}
})
}
路由器文件
const express = require('express');
const route = express.Router()
const services = require('../services/render')
const controller = require('../controller/controller')
/**
* @description Root Route
* @method GET/
*/
route.get('/',services.homeRoutes)
/**
* @description add users
* @method GET/ add-user
*/
route.get('/add-user',services.add_user)
/**
* @description for update user
* @method GET/ update-user
*/
route.get('/update-user',services.update_user)
// API
route.post('/api/users',controller.create);
route.get('/api/users',controller.find);
route.put('/api/users/:id',controller.update);
route.delete('/api/users/:id',controller.delete);
module.exports = route
_show.ejs
<%for(var i = 0; i <users.length; i++){%>
<tr>
<td><%= i + 1%></td>
<td><%=users[i].name%></td>
<td><%=users[i].email%></td>
<td><%=users[i].Lytis%></td>
<td><%=users[i].status%></td>
<td>
<a href="/update-user?id=<%=users[i]._id%>" class="btn border-shadow update">
<span class="text-gradient"><i class="fas fa-user-edit"></i></span>
</a>
<a class="btn border-shadow delete" data-id=<%=users[i]._id%>>
<span class="text-gradient"><i class="fas fa-user-slash"></i></span>
</a>
</td>
</tr>
<%}%>
嘗試搜索和更改一些方法,但沒有任何效果,現在卡住了,我猜它可能是錯誤的 ejs。 或者是其他東西 。 以及如何控制台記錄來自后端或前端的所有詳細信息?
route.get('/update-user',services.update_user)
定義為 GET,但您正在向其發布 - 更改為
route.post('/update-user',services.update_user)
$.ajax (request).done(function(response){
console.log(response) <------------------------------------
alert("Naudotojas Atnaujintas!")
})
改變get
來post
這一行
route.get('/update-user',services.update_user)
到
route.post('/update-user',services.update_user)
因為你的提交是post
方法,如果需要添加app.use(express.json())
和app.use(express.urlencoded({extended:false}));
表達
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.