попытка обновить пользователя, получающего ошибку, Не может ОПУБЛИКОВАТЬ /обновить-пользователь

#javascript #mongodb #post #backend #ejs

Вопрос:

Здравствуйте, когда я пытаюсь обновить пользователя на странице, я получаю ошибку Не удается ОПУБЛИКОВАТЬ /обновить-пользователь не может найти проблему, может кто-нибудь увидеть, что ошибка была сделана код ниже введите описание изображения здесь

index.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()  })  }    })  }  

ROUTER.JS

 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

 lt;%for(var i = 0; i lt;users.length; i  ){%gt;  lt;trgt;  lt;tdgt;lt;%= i   1%gt;lt;/tdgt;  lt;tdgt;lt;%=users[i].name%gt;lt;/tdgt;  lt;tdgt;lt;%=users[i].email%gt;lt;/tdgt;  lt;tdgt;lt;%=users[i].Lytis%gt;lt;/tdgt;  lt;tdgt;lt;%=users[i].status%gt;lt;/tdgt;  lt;tdgt;  lt;a href="/update-user?id=lt;%=users[i]._id%gt;" class="btn border-shadow update"gt;  lt;span class="text-gradient"gt;lt;i class="fas fa-user-edit"gt;lt;/igt;lt;/spangt;  lt;/agt;  lt;a class="btn border-shadow delete" data-id=lt;%=users[i]._id%gt;gt;  lt;span class="text-gradient"gt;lt;i class="fas fa-user-slash"gt;lt;/igt;lt;/spangt;  lt;/agt;  lt;/tdgt; lt;/trgt; lt;%}%gt;  

Попробуйте поискать и изменить некоторые методы, но ничего не работает, и теперь это может быть неправильным, я думаю . Или что-то еще . И как сохранить все детали, поступающие из бэкенда или с внешнего интерфейса ?

Комментарии:

1. Если вы пытаетесь ОПУБЛИКОВАТЬ update-user , я думаю, вам нужно разрешить публикацию для этого метода: route.post('/update-user',services.update_user)

Ответ №1:

route.get('/update-user',services.update_user)

Определяется как ПОЛУЧИТЬ, но вы отправляете в него — Измените на

route.post('/update-user',services.update_user)

 $.ajax (request).done(function(response){   console.log(response) lt;------------------------------------  alert("Naudotojas Atnaujintas!") })  

Комментарии:

1. я сделал то, что вы сказали, но я не могу ПОЛУЧИТЬ /обновить-добавлен пользователь

2. // конфигурация приложения json app.use(express.json()) app.use(express.urlencoded({расширено:ложно}));

3.Если вам нужны оба метода HTTP, вам необходимо определить как GET, так и POST — route.get('/update-user',services.update_user) и route.post('/update-user',services.update_user) — Вам может потребоваться другая логика, основанная на методе HTTP, определенном в services.update_user

Ответ №2:

измените 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})); выразите