Задать вопрос
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик

Почему не работает код на node.js?

Хочу сделать проект на node.js. Чтобы текст, который вводил пользователь на сайте записывался в файлик.
У меня есть три варианта, почему не работает: Кроме node.js нужна еще какая-то штука. Проблема в моем фронтендном хостинге. Сайт не может поймать форму по /add.
import { fileURLToPath } from 'url'
 import path from 'path'
 import fs from 'fs'
import http, { request } from "http"
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
    let server = http.createServer(function (request, response) {
        let indexPage = fs.readFileSync(path.join(__dirname, "hello.html"))
      if(request.url == "/"){
     response.writeHead(200, {"Content-Type": "text/html"}) 
     response.end(indexPage)
    }
    
    else if(request.url == "/add" && request.method == "POST"){
       let data = ""
       request.on( "data", function(chunk){
           data += chunk;
       })
       request.on("end", function(){
           let search = new URLSearchParams(data)
           
      let first_name = search.get("first_name")
        let last_name = search.get("last_name")
        let content = search.get("content")
        let number = search.get("number")
        
     
      fs.appendFileSync(path.join(__dirname, "text.txt"), first_name + "\n")
      fs.appendFileSync(path.join(__dirname, "text.txt"), last_name + "\n")
      fs.appendFileSync(path.join(__dirname, "text.txt"), number + "\n")
      fs.appendFileSync(path.join(__dirname, "text.txt"), content + "\n")
     
        
           response.writeHead(302, {"Location": "/"})
           response.end()
       })
    }

   
      })

server.listen(3000)

HTML код
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <form action="/add" method="post"><br>
<input type="text" placeholder="Name" name="first_name"><br><br>
<input type="text" placeholder="Last_name" name="last_name"><br><br>
<input type="number" name="number" id="" placeholder="Your number"><br><br>
<textarea name="content" placeholder="Content" id="" cols="30" rows="10"></textarea><br><br>
   <button type="submit">Add</button><br><br>
</form>
</body>
</html>
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
vool
@vool
Разработчик
Код действительно рабочий, значит проблемма в хостинге
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы