-1
I have already installed Node Static, to fix the first time q error appeared, which seemed to be related to a server response delay, but msm after I took this delay, the error kept appearing, probably related to the creation of table or database.db file, but I can’t find it, I’m new to sql, maybe that’s why I can’t find the error
error q i am getting is:
[Error: SQLITE_ERROR: near "PRIMARY": syntax error] {
  errno: 1,
  code: 'SQLITE_ERROR'
}
undefined:0
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at ServerResponse.setHeader (_http_outgoing.js:518:11)
    at ServerResponse.header (C:\Users\julio\OneDrive\Área de Trabalho\MarketPlace\node_modules\express\lib\response.js:771:10)
    at ServerResponse.send (C:\Users\julio\OneDrive\Área de Trabalho\MarketPlace\node_modules\express\lib\response.js:170:12)
    at afterInsertData (C:\Users\julio\OneDrive\Área de Trabalho\MarketPlace\src\server.js:99:24)
    at Statement.errBack (C:\Users\julio\OneDrive\Área de Trabalho\MarketPlace\node_modules\sqlite3\lib\sqlite3.js:14:21) {
  code: 'ERR_HTTP_HEADERS_SENT'
}
my file for start is this:
var express = require("express")
var server = express()
var http = require('http');
var nStatic = require('node-static');
var fileServer = new nStatic.Server('./public');
http.createServer(function (req, res) {
    
    fileServer.serve(req, res);
}).listen(5000);
// configurar pasta publica
//server.use(express.static("public"))
// habilitar uso do req.body
server.use(express.urlencoded({ extended: true }))
//pegar banco de
var db = require("./database/db")
//utilizando template engine
var nunjucks = require("nunjucks")
nunjucks.configure("src/views", {
    express: server,
})
server.get("/", (req, res) => {
    return res.render("index.html")
})
server.get("/createCliente", (req, res) => {
    return res.render("create-client-user.html")
})
server.get("/createStore", (req, res) => {
    return res.render("create-store-user.html")
})
 server.post("/saveuser", (req, res) => {
    // db.run(`
    // CREATE TABLE IF NOT EXISTS clientes (
    //     cell TEXT PRIMARY KEY,
    //     name TEXT,
    //     birthDate TEXT,
    //     rg TEXT,
    //     cep TEXT,
    //     uf TEXT,
    //     city TEXT,
    //     bairro TEXT,
    //     rua TEXT,
    //     numero TEXT,
    //     complement TEXT
    // );
    // `)
    const query = `
    INSERT INTO clientes (
        cell  PRIMARY KEY,
        name,
        birthDate,
        rg,
        cep,
        uf,
        city,
        bairro,
        rua,
        numero ,
        complement
    ) value(?,?,?,?,?,?,?,?,?,?,?);
    `
    const values = [    
        req.body.cell,
        req.body.name,
        req.body.day + "/" + req.body.month + "/" + req.body.year,
        req.body.rg,
        req.body.cep,
        req.body.uf,
        req.body.city,
        req.body.bairro,
        req.body.logradouro,
        req.body.num,
        req.body.complement
    ] 
    console.log(values)
    function afterInsertData(err) {
        if (err) {
            console.log(err)
            return res.send("Erro no cadastro!")
        }
    
        console.log("Cadastrado com sucesso")
        console.log(this)
    }
    
    db.run(query, values, afterInsertData)
    db.all(`SELECT name FROM clientes`, function(err, rows) {
        if(err) {
            return console.log(err)
        }
        console.log("Aqui estão seus registros: ")
        console.log(rows)
    })
    
    return res.render("index.html")
 })
server.listen(3000)
my db.js file to startar the sqlite3 is:
``` //importar obj sqlite3
const sqlite3 = require("sqlite3").verbose()
//criar obj q vai fazer  operaç~oes no banco de daddo
const db = new sqlite3.Database("./src/database/database.db")
module.exports = db
db.serialize(() => {
//     db.run(`
//    CREATE TABLE IF NOT EXISTS clientes (
//        cell TEXT PRIMARY KEY,
//        name TEXT,
//       birthDate TEXT,
//        rg TEXT,
//        cep TEXT,
//        uf TEXT,
//        city TEXT,
//        bairro TEXT,
//        rua TEXT,
//        numero TEXT,
//        complement TEXT
//    );
//`)
}) 
my html file is this, n added also the script, pq it just served to popular some selects and give autocomplete in the zip code
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="http://localhost:5000/style/main.css">
</head>
<body>
    <div class="header">
        <img src="http://localhost:5000/imgs/logos/iconeLogo.png" alt="">
        <div class="links">
            <a href="/createCliente">Registrar-se</a>
            <a href="/createStore">Registrar minha Loja</a>
            <a href="">Em alta</a>
            <a href="">Registrar-se</a>
            <a href="">Registrar-se</a>
            <a href="">Registrar-se</a>
            <a href="">Registrar-se</a>
        </div>
    </div>
<h1>Criando Conta</h1>
<form action="/saveuser" method="POST">
    <fieldset>
        <div class="field">
            <label for="name">Nome:</label>
            <input type="text" name="name" required="required">
        </div>
        
        <div class="field">
            <label for="cell">Telefone Celular:</label>
            <input type="text" name="cell">
        </div>
        
        <div class="field-group">
            <label for="birthDate">Data de nascimento:</label>
            <select class="birthDate field" name="day" required="required">
                <option value="">Selecione o dia</option>
            </select>
            <select class="birthDate field" name="month" required="required">
                <option value="">Selecione o mês</option>
            </select>
            <select class="birthDate field" name="year" required="required">
                <option value="">Selecione o ano</option>
            </select>
        </div>
        
        <div class="field">
            <label for="RG">RG:</label>
            <input type="text" name="rg">
        </div>
        
        <div class="field-group adress">
            <div class="field">
                <label for="CEP">CEP:</label>
                <input class="CEP"  type="text" name="cep">
            </div>
            <div class="field">
                <label for="UF">Unidade Federal(Estado):</label>
                <input class="CEP UF"  type="text" name="uf">
            </div>
            <div class="field">
                <label for="city">Cidade:</label>
                <input class="CEP city"  type="text" name="city">
            </div>
            <div class="field">
                <label for="bairro">Bairro:</label>
                <input class="CEP bairro"  type="text" name="bairro">
            </div>
            <div class="field">
                <label for="logradouro">Logradouro:</label>
                <input class="CEP logradouro"  type="text" name="logradouro">
            </div>
            <div class="field">
                <label for="num">Número:</label>
                <input class="num"  type="text" name="num">
            </div>
            <div class="field">
                <label for="complement">Complemento:</label>
                <input class="complement"  type="text" name="complement">
            </div>
        </div>
    </fieldset>
    <button type="submit">Submit</button>
</form>
</body>
</html>
It worked, thank you very much, the function of listing the data is just for me to know if really they were added It was a very silly error msm right, just to know you think q delete the question?
– julioHeyDev
I could, so she can help other people who have the same problem.
– Danizavtz