Итак, у меня есть две формы, одна для запуска поискового потока в твиттере.Вторая форма - остановить поисковый поток.
В router.post () я пытаюсь установить логику, посредством которой:
, если нажата кнопка остановки, остановить поток.если нажата кнопка запуска, запустите поток.
Проблема : я могу запустить поток, однако, когда я нажимаю кнопку СТОП, не работает.Возможно, потому что первое значение формы все еще «активно».Оператор if в моем маршрутизаторе неверен?
Как лучше всего это решить?
INDEX.JS
const _stream = {};
router.post('/', async (req, res) => {
console.log("raw obj " + req.body.searchTerm);
if(req.body.searchTerm === "london") {
console.log("startz " + req.body.startBtn);
twitterStream(_stream, req.body.searchTerm, function(_stream) {
console.log("stream on!!");
_stream.on('data', function(tweet) {
console.log(tweet.text + "Streaming");
// socket.emit('tweet', tweet.text);
});
_stream.on('error', function(error) {
console.log("erorr:: " + error);
throw error;
});
});
}
if(req.body.stopSearch ==="stopSearch") {
console.log("destroy stream!!");
_stream.destory();
} else {
console.log("nothings");
}
res.send("true");
});
SCRIPT.JS
function startSearchForm() {
$("#startBtn").on('click', function() {
let form = $("#search-form");
let query = form.serialize();
console.log(query);
$.post('/', query);
});
}
function stopSearchForm() {
$("#stopBtn").on('click', function() {
let startSearchValue = $("#searchTerm").val("");
console.log("START VALUE NOW IS " +startSearchValue);
let form = $("#searchStop-form");
let query = form.serialize();
console.log(query);
$.post('/', query);
});
}
HTML PUG
form#search-form(action='javascript:startSearchForm()', method='POST')
input(type="text" id="searchedTerm" name="searchTerm" placeholder="#hastag" required)
button(type="submit" name="startBtn" id="startBtn") Search
form#searchStop-form(action='javascript:stopSearchForm()', method='POST')
input(type="text" id="stopSearch" name="stopSearch" value="stopSearch" hidden)
button(type="submit" id="stopBtn" name="stopBtn") Stop