В настоящее время я пытаюсь заменить всю страницу на AJAX. Я не могу просто перенаправить на другой URL в соответствии с моим назначением по любой причине.
Мой сервер node.js имеет index.pug.
Форма отправки предназначена для повторной загрузки той же страницы, но замены всего HTML-файла после обработки запроса POST.
Я знаю, что я мог бы просто заменить, но я хотел бы просто сделать мою страницу с любой заменой.
Я пытался заменить его на $ ("body"). Html (res), который не выдает ошибку, но не заменяет то, что мне нужно, и $ ("head"). Html (res ) также выдает ту же ошибку.
Я получаю это, когда пытаюсь использовать $ ("head"). Html (res):
TypeError: t is null
мопс:
doctype html
html
head
title Simple Upload Example
script(src='https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js' )
script.
$(document).ready(function () {
$('#eventForm').submit(function (e) {
//Do two sends.
e.preventDefault();
var username = ($('#username')[0]);
var password = ($('#password')[0]);
var files = ($('#image-input')[0].files);
// Append the files to the formData.
var fd = new FormData();
for (var i = 0; i < files.length; i++) {
var file = files[i];
fd.append('photos[]', file, file.name);
}
fd.append('password',password.value);
fd.append('username',username.value);
$.ajax({
url: '/',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function (res) {
console.log("Success");
$(document).html(res);
},
error: function () {
console.log("Failure");
}
});
});
});
body
form#eventForm(method='post', enctype='multipart/form-data')
input#image-input(type='file', accept='image/png, image/jpeg')
input#username(type='text')
input#password(type='text')
input(type='submit')
h1=message
JS
var express = require('express');
var formidable = require('formidable');
var uuidv5 = require('uuid/v5');
var fs = require('fs');
var app = express();
app.get('/', function (req, res) {
res.render(__dirname + '/index.pug', {
message: 'hi'
});
});
//Create a new ID.
app.post('/', function (req, res) {
var fields = [];
var form = new formidable.IncomingForm();
form.parse(req);
form.on('fileBegin', function (name, file) {
file.path = '.' + '/uploads/' + file.name;
});
//Push field onto an array
form.on('field', function (name, value) {
fields.push('"' + name + '"' + ':' + '"' + value + '"');
});
form.on('file', function (name, file) {
console.log('Uploaded ' + file.name);
});
//Convert array into form
form.on('end', function () {
var photo_id = uuidv5('http://example.com/hello', uuidv5.URL);
var str = '{' + fields.toString() + '}'
var jsonData = JSON.parse(str)
fs.mkdirSync(__dirname + '/users/' + jsonData.username, { recursive: true }, (err) => {
if (err) throw err;
});
fs.writeFile(__dirname + '/users/' + jsonData.username + '/jsonData.json', str, function (err) {
if (err) {
console.log(err);
}
});
});
res.render(__dirname + '/index.pug', {
message: 'hiya'
});
});
app.listen(3000);