Как я могу успешно создать простую форму с помощью nodejs без внешних модулей

avatar
Kareem Reese
9 августа 2021 в 00:23
43
1
2

Итак, я немного поработал над этим:

/*
API 1 Docs: https://docs.genius.com/#/getting-started-h1
API 2 Docs: https://pastebin.com/doc_api
*/

let https = require('https')
//const qs = require('querystring');


function handler(req, res){
  if(req.method == "GET"){ 
    res.setHeader('Content-Type', 'text/html');
    res.writeHead(200);
    res.end("<html><body><form action='/' method='post'><input type='text' name='hello'><input type='submit'></form></body></html>");
  } else if(req.method == 'POST'){
    res.setHeader('Content-Type', 'text/html');
    res.writeHead(200);
    res.end(`<html>Success Posting!</html>`)
    /*
    var body;
    req.on('data', function(data) {
      body += data;
      if (body.length > 1e6) {
        // FLOOD ATTACK OR FAULTY CLIENT, NUKE REQUEST
        req.connection.destroy();
      }
    });
    req.on('end', function() {
      var POST = qs.parse(body);
      let data = POST.submit
      res.end(`<html>${data}</html>`)
    });
    */
  } else {
    res.writeHead(200);
    res.end();
  };
};


https.createServer(handler).listen(3000, function(err) {
  if (err) {
    console.log('Error starting https server');
  } else {
    console.log('Server listening on port 3000');
  };
});

(не обращайте внимания на закомментированный код) У меня это работало раньше, и внезапно оно перестало работать, создало форму и после ее отправки изменило страницу на «Успешная публикация», но теперь внезапно это не так, и я делал небольшие изменения, не зная моего проблема

Источник
Bravo
9 августа 2021 в 00:27
0

У меня раньше работало и вдруг перестало работать ... сравнивая рабочий код с нерабочим - что поменяли?

Kareem Reese
9 августа 2021 в 00:28
0

в том то и дело, я пытался вернуть его в исходное состояние, но я, должно быть, что-то пропустил @Bravo

Bravo
9 августа 2021 в 00:30
0

какие ошибки вы видите в консоли браузера? вы используете https - есть ли у вас действующий сертификат SSL и т. д.? пожалуйста, дайте определение «это перестало работать» немного лучше - что вы видите, как это отличается от того, что вы ожидаете. Кстати, используя вместо этого http, ваш код работает нормально - предположил, что у вас был http, и вы перешли на https, не понимая, что еще нужно сделать для https

Kareem Reese
9 августа 2021 в 07:04
0

Ошибок нет, просто не работает @Bravo

Bravo
9 августа 2021 в 07:10
0

вау, тогда вы, должно быть, используете странный браузер - я вижу, что использование http вместо https работает

Ответы (1)

avatar
Kareem Reese
9 августа 2021 в 07:07
0

Похоже, мне нужно создать http-сервер с помощью модуля http вместо создания https-сервера с модулем https

До:

const https = require('https')

https.createServer(handler).listen(3000, function(err) {
  if (err) {
    console.log('Error starting https server');
  } else {
    console.log('Server listening on port 3000');
  };
});

После:

const http = require('http')

http.createServer(handler).listen(3000, function(err) {
  if (err) {
    console.log('Error starting http server');
  } else {
    console.log('Server listening on port 3000');
  };
});