Я все еще учусь, но немного расстроен тем, что не могу найти решение этой проблемы с помощью ES6 Javascript.
У меня есть простое веб-приложение со списком задач, и все сохраняется и отображается через javascriptфайл, который подается со страницей html и localstorage.
Моя проблема заключается в том, что я хотел бы иметь возможность развернуть его, так как приложение узла используется как в онлайн, так и в автономном режиме.Моя идея, чтобы иметь возможность добавить задачу, которая будет визуализировать на стороне клиента и делать запросы POST и DELETE за сценой для отправки в базу данных.
Модель принимается и сохраняется именно так, как я хочу,однако я хочу завершить ответ (res), чтобы страница не перезагружалась и не нарушала работу приложения.Код работает с использованием res.redirect('back')
, но не без проблем визуально, потому что он каждый раз перезагружается.
Это файл приложения js:
const express = require('express');
const mongoose = require('mongoose');
const passport = require('passport');
const cookieSession = require('cookie-session');
const keys = require('./config/keys');
const authRoutes = require('./routes/auth-routes');
const passportSetup = require('./config/passport-setup');
//App
const app = express();
app.set('view engine','ejs');
//Static Files Route
app.use('/resources',express.static('resources'))
//CookieSession
app.use(cookieSession({
maxAge: 1000*60*60*24,
keys: [keys.session.cookieKey]
}));
//Init passport
app.use(passport.initialize());
app.use(passport.session());
//MongoDB Connect
mongoose.connect(keys.mongodb.dbURI,{ useNewUrlParser: true },()=>{console.log('MongoDB connected');})
//Routes
app.use('/auth',authRoutes);
app.use('/submit',require('./routes/submit'));
//Main
app.get('/', (req,res) =>{
res.render('index',{user: req.user});
});
//Port Listening
app.listen(7000, ()=>{
console.log("Listening on port 7000");
});
Это логика POST, которую я использую.работа с:
const express = require('express');
const router = express.Router();
const Task = require('../models/task-model');
const bodyParser = require('body-parser');
let urlencodedParser = bodyParser.urlencoded({ exstended:false });
router.post('/', urlencodedParser, (req,res,next)=>{
let newTask = Object.assign({owner: req.user._id},req.body);
console.log("POST recieved");
console.log(newTask);
res.redirect('back');
//Task.create(newTask);
});
module.exports = router;
Автономная версия репо веб-приложения: https://github.com/FalseProspect/myTask-TODO-app/tree/master
TLDR;Можно ли завершить ожидающий ответ сервера без перенаправления / рендеринга той же страницы с помощью ES6 (без JQuery).Я не хочу, чтобы со страницей произошел ответ.