Хочу сделать проект на 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>