ОТПРАВКА jQuery в NODEJS (экспресс)

#javascript #jquery #node.js #express #post

#javascript #jquery #node.js #экспресс #Публикация

Вопрос:

РЕДАКТИРОВАТЬ: проект на Github: https://github.com/jackphumphrey/medisearch

Я очень новичок в NodeJS, поэтому извините, если это простой / глупый вопрос

Я пытаюсь отправить POST-запрос с помощью jQuery ($.post), который находится: /public/javascripts/user.js

user.js в названном в index.html после jquery

index.html загружается нормально, однако запрос $.post отправляет сообщение об ошибке

Я думаю, что моя главная проблема в том, что я не знаю, ГДЕ (как в местоположении в узле) Я предполагаю отправить запрос post

Мой каталог: основная папка/

public/index.html amp; public/javascripts/user.js

app.js amp; routes/users.js , routes/index.js

user.js (находится в общественном месте /)

 $.post('/users', JSON.stringify({username : 'data', useremail : 'data@data.com'}), function(response, status) {
        
}, "json")
    .done(function(response) {  
        alert(response);
    })
    .fail(function(xhr, status, error) {
        alert('error: '   error   ' status: '   status);
    })
    .always(function(response) {
        console.log('^ RESPONSE: '   response);
}); 

users.js (находится в маршрутах/)

 var express = require('express');
var router = express.Router();

router.post('/users', function(req, res) {
  var userName = req.body.username;
  var userEmail = req.body.useremail;
  console.log('Username: '   userName   ' Email: '   userEmail);
  res.send('Username: '   userName   ' Email: '   userEmail);
});

module.exports = router; 

Я запускаю его на digital ocean @ порт 8080

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

1. Для отправки json на сервер вам также необходимо установить соответствующий заголовок Content-type. На стороне сервера вам также необходимо запросить bodyParser

2. В какой файл и где в этом файле я должен включить bodyParser? Я разместил ссылку на GitHub, чтобы вы могли посмотреть полный код, если это поможет.

Ответ №1:

Используйте приведенный ниже код jquery:

 $("button").click(function(){
      $.post("/users",
      {
        name: "osasere",
        city: "stack"
      },
      function(data, status){
        console.log("Data: "   data   "nStatus: "   status);
      });
});
 

В вашем app.js файл обязательно используйте:

 const express = require('express')
const userRouter = require('./routes/users')
const app = express()

app.use(express.urlencoded({ extended: false }))

app.use(userRouter)
 

Если это не сработает, попробуйте связаться со мной.

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

1. У меня уже есть это. Я разместил ссылку на проект GitHub, чтобы вы могли взглянуть на полный код и посмотреть, не потеряно ли что-нибудь.