#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, чтобы вы могли взглянуть на полный код и посмотреть, не потеряно ли что-нибудь.