Node / Express Post запрос с использованием функции для отправки данных - PullRequest
0 голосов
/ 15 декабря 2018

Я использую функцию, которая предотвращает отправку формы по умолчанию, и хочу использовать вторую функцию, которая публикует ее, чтобы я мог обработать / изменить данные в первой функции перед отправкой.

первая функция

const Test = document.querySelector('.test')
Test.addEventListener('submit', (e) => {
  e.preventDefault()
  const username = CreateUser.querySelector('.username').value
  const password = CreateUser.querySelector('.password').value
  post('/about', { username, password })
})

Я обнаружил следующую функцию, которая отправляет запрос Post.Он отлично работает, когда назначение - это другая функция, не покидая фактическую страницу.

function post (path, data) {
  return window.fetch(path, {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  })
}

Я использую следующую маршрутизацию в моем index.js

const express = require('express')
const bodyParser = require('body-parser')
const store = require('./store')
const app = express()
app.use(express.static(__dirname + '/public'))
app.use(bodyParser.json())

var path = require('path')

app.post('/createUser', (req, res) => {
  store
    .createUser({
      username: req.body.username,
      password: req.body.password
    })
    .then(() => res.sendStatus(200))
})

app.get('/about',(req, res) => {
  res.sendFile(path.join(__dirname, './public', 'about.html'));
})

app.post('/about',(req, res) => {
  res.sendFile(path.join(__dirname, './public', 'about.html'));
})



app.listen(7555, () => {
  console.log('Server running on http://localhost:7555')
})

Когда я пишу сообщение на /createUser Я отлично работаю и могу вставить данные в таблицу MySQL, используя функцию.Теперь я хочу сделать сообщение на /about с помощью функции и в конце концов передать данные.Почему это не работает?Я не получаю никакой ошибки.Файлы about.html, index.html и js с моими функциями находятся в общей папке.спасибо за помощь

1 Ответ

0 голосов
/ 15 декабря 2018

Ваш маршрут для функции записи

app.post('/about',(req, res) => {
  res.sendFile(path.join(__dirname, './public', 'about.html'));
}) 

просто возвращает страницу about.html из папки public.Так что не было бы ошибки, вы должны просто вернуть этот HTML после публикации в конечную точку с тем, как он настроен в настоящий момент.

Проблема в том, что вы получите это обратно как теловашего fetch() запроса.Если вы хотите увидеть страницу about.html, вам нужно перенаправить на http://localhost:7555/about.html.Если вы хотите увидеть результат вашего запроса fetch(), вы сможете увидеть полезную нагрузку на вкладке Сети вашего DevTools (или аналога вашего браузера).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...