javascript – Em uma aplicação de pequeno porte seria uma opção valida utilizar o ‘quick.db’ ou isso traria problemas futuros?

Estou programando uma API para uso em um aplicativo Windows de pequeno porte e estive com algumas duvidas na hora de realizar a implantação da API.
Na hora de escolher o banco de dados para utilizar em minha aplicação, encontrei problema em selecionar oque seria de fácil implementação, porem não deixasse a desejar na parte de desempenho.
Estava entre o ‘quick.db’ (Utiliza o better-sqlite3), Mongoose(MongoDB) ou partir para MySql / SqlServer.
Pela praticidade e simplicidade de implementação optei por utilizar o quick.db, porem, o mesmo não possui uma função de Models como o Mongoose por exemplo. Para sanar esse problema eu segui alguns tutorias e fiz a seguinte implementação:

Código do objeto Conta.

const db = require('quick.db');
const md5 = require('md5');

String.prototype.ReplaceAll = function (stringToFind, stringToReplace) {
    var temp = this;
    var index = temp.indexOf(stringToFind);
    while (index != -1) {
        temp = temp.replace(stringToFind, stringToReplace);
        index = temp.indexOf(stringToFind);
    }
    return temp;
};

var Conta = new Object ({
    email: "",
    password: "",
    token: "",
    avatar: "",
    findByEmail: async function (email) {
        let e = email.ReplaceAll(" ", "").toLowerCase();
        let contas = await db.get(`arka.usuarios`);
        if (contas == null) return null;
        let jsonString = JSON.stringify(contas);
        let conta = JSON.parse(jsonString);
        for (var c in conta) {
            if (e === conta(c).email) {
                return conta(c);
            }
        }
        return null;
    },
    createAccount: async function (email, password, avatar = "") {
        let e = email.ReplaceAll(" ", "").toLowerCase();
        if (await this.findByEmail(e) != null) return null;
        let p = password.ReplaceAll(" ", "").toLowerCase();
        let token = md5('arkatokengenerate' + e + p);
        let user = {
            "email":e,
            "password": p,
            "token": token,
            "avatar": avatar
        };
        await db.set(`arka.usuarios.${token}`, user);
        let ret = Object.create(Conta);
        ret.email = e;
        ret.password = p;
        ret.token = token;
        ret.avatar = avatar;
        console.log(ret);
        return ret;
    }
});

module.exports = Conta;

Exemplo de como estou utilizando o objeto

const Conta = require('../model/conta');

exports.createAccount = async function (req, res, next) {
    let json = req.body;
    if (!json) return res.status(400).send({status: 0, erro: "Envie os dados para realizar a requisição", data: ()});
    if (!json.email) return res.status(400).send({status: 0, erro: "Informe o email para realizar a requisição", data: ()});
    if (!json.password) return res.status(400).send({status: 0, erro: "Informe a senha para realizar a requisição", data: ()});
    if (!json.rpassword) return res.status(400).send({status: 0, erro: "Repita a senha para realizar a requisição", data: ()});
    let u = Object.create(Conta);
    u = await u.createAccount(json.email, json.password, json.avata != null ? json.avatar : "");
    res.status(200).send({status: 1, erro: "", data: (u)});
};

Esta implementação utilizando o banco de dados ‘quick.db’ com uma possível implementação de POO seria a melhor solução para possuir um sistema simples e eficiente ou futuramente poderei ter problemas de performance com a utilização do mesmo ?

teoria da computação – Qual a definição correta de concatenação e o que realmente acontece quando fazemos isso com variáveis?

Primeiro leia isto: O que é uma variável?.

Você não soma ou concatena ou faz qualquer operação com variáveis, mas sim faz com valores, que eventualmente estão armazenados em variáveis ou em objetos que são referenciadas por variáveis. Sem conceituar certo não dá para aprender corretamente, e parece que quer aprender o correto.

A questão da diferença de resultado seria estranha para quem nunca ouviu falar de concatenação, mas é auto explicativo quando se sabe o que é.

Quando se aplica o operador + em valores numéricos ele faz uma soma matemática que todo mundo conhece. Quando se aplica o mesmo operador à textos ele faz a tal da concatenação, ou seja, junta dois textos e cria um novo com tudo junto.

O segundo caso tem valores numéricos, por que ele faria uma concatenação com isso? Seria estranho.

Então variáveis não são transformadas em strings ou qualquer outra coisa, pelo já exposto acima.

Para transformar um valor numérico não se coloca entre aspas, se colocar aspas então o que tem ali é um texto, uma string, não é um valor numérico transformado. E se não tem aspas não é um texto é um valor numérico ou outro tipo que tenha um literal definido pela linguagem.

O literal que tem um ou uma sequência de dígitos numéricos indica um valor quantitativo. O literal que começa e termina com aspas indica uma descrição de alguma coisa, um texto.

Quando concatena valores, e isso só acontece em valores do tipo string, cada caractere de do segundo valor vai sendo colocando em sequência logo após os caracteres existentes do primeiro valor. A forma exata como isso acontece na memória parece ser algo irrelevante no momento já que é o conhecimento mais aprofundado e que em geral o programador não precisa entender, até estar mais avançado e desejar dominar tudo.

Tem linguagem, até bem popular que bagunça isso quando mistura um texto um um número, mas vamos trabalhar com a ideia de uma linguagem que não faz coisas malucas.

php – Como fazer um consulta que retorne o valor em comum de uma tabela, onde em outra tabela existe uma relação (não consigo fazer isso)

Quero retornar as postagens dos usuarios que são seguidos pelo usuario da sessao, e tambem imprimir as postagens do próprio: segue as tabelas e o código:

as tabelas:

inserir a descrição da imagem aqui

inserir a descrição da imagem aqui

inserir a descrição da imagem aqui

função com a stmt falha:

//mostra as publicações

function show_posts($userid, $db){
$posts = array();

//aqui faço um stmt para que todos os posts relacionados a o usuario atual seja imprimido
$stmt=" SELECT DISTINCT posts.body, posts.stamp, users.username FROM posts, users, following  
        WHERE following.user_id = posts.user_id AND following.follower_id = :id 
        ORDER BY stamp desc";

            $resultado=$db->prepare($stmt);
             
            $resultado->bindValue(":id", $userid);
            

            $resultado->execute();


while($data = $resultado->fetch(PDO::FETCH_OBJ)){
    $posts() = array(   'stamp' => $data->stamp,
                        'username' => $data->username,
                        'body' => $data->body
);
}
return $posts;

}

aqui é a area index.php onde é imprimido:

$posts = show_posts($_SESSION('userid'), $db);
    print '<pre>';
    print_r($posts);
    if (count($posts)){
        foreach ($posts as $post) {
                print <<<HTML
                        <div class="div-publicacao-feed">
                            <p class="texto-publicacao"><b>{$_SESSION('username')}</b> {$post('body')}</p>
                            <div class="div-comentario-existente">
                                <p class="nome-perfil-comentario">nome_comentador</p>
                                <p class="comentario">comentário - aqui qual quer pessoa pode digitar algo</p>
                                <div class="w-form">
                                    <form id="email-form-2" name="email-form-2" data-name="Email Form 2" class="w-clearfix"><textarea placeholder="..." maxlength="5000" id="field-2" name="field-2" class="textarea w-input"></textarea><input type="submit" value="Comentar" data-wait="Please wait..." class="submit-button w-button"></form>
                                    <div class="w-form-done">
                                        <div>Thank you! Your submission has been received!</div>
                                    </div>
                                    <div class="w-form-fail">
                                        <div>Oops! Something went wrong while submitting the form.</div>
                                    </div>
                                </div>
                            </div>
                            <p ><smal>{$post('stamp')}</smal></p>
                        </div>
                HTML;
        } 
    }

Como faço isso em python?

Como faço uma função que receba uma lista de inteiros e imprima de forma decrescente para todos os itens da lista a tabuada de 1 até o número lido, conforme exemplo abaixo

entrada de exemplo:

1,2,3,4

resultado esperado
4×1 = 4
4×2 = 8
4×3 = 12
4×4 = 16
3×1 = 3
3×2 = 6
3×3 = 9
2×1 = 2
2×2 = 4
1×1 = 1

basic – link com a pergunta abaixo, to postando o link porque não consigo repostar a mesma pergunta, isso e URGENTE!

Obrigado por contribuir com o Stack Overflow em Português!

  • Certifique-se de responder à pergunta. Entre em detalhes sobre a sua solução e compartilhe o que você descobriu.

Mas evite

  • Pedir esclarecimentos ou detalhes sobre outras respostas.
  • Fazer afirmações baseadas apenas na sua opinião; aponte referências ou experiências anteriores.

Para aprender mais, veja nossas dicas sobre como escrever boas respostas.

javascript – Meu erro aparece isso: (script.js:3 Uncaught TypeError: Cannot read property ‘value’ of null) e eu não sei como resolver, alguém é capaz de me ajudar?

Sou um iniciante em JavaScript e sei muito pouco mesmo, se puderem ser o mais claro possível, seria de grande ajuda!

Observação: eu ainda não terminei o meu código, estou indo por partes para confirmar a funcionalidade dele, pois ficaria muito ruim eu só testar no final.

Meu código:

function verificacao() {
    var vmax = 75
    var automovel = window.document.querySelector('input#velocidade1')
    var res = window.document.querySelector('div#res')
    var vel = Number(automovel.value)
    if (automovel.value <= 5 || automovel.value >= 250) {
        window.alert('(ERRO} verifique os seus dados novamente!')
    } else {
        var veiculo = document.getElementsByName('automovel')
        var ultrapassado = vmax - Number(automovel.value)
        var autocar = ''
        var img = document.createElement(`img`)
        img.setAttribute('id', 'foto')
        res.innerHTML = `<p>Sua velocidade atual é de <strong>${vel}Km/h</strong></p>`
    }
}

Meu HTML:

<!DOCTYPE html>
<html lang="pt-BR">
<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>DETRAN</title>
    <link rel="stylesheet" href="estilo.css">
</head>
<body>
    <header>
        <h1>Sistema de multas</h1>
    </header>
    <section>
        <div id="c1">Velocidade do carro:
            <p>
            <input type="number" name="velocidade" id="velocidade" min="0">
        </p>
        <p>Seu automóvel:
        <input type="radio" name="automovel" id="carro" checked>
        <label for="carro">Carro</label>
        <input type="radio" name="automovel" id="moto">
        <label for="moto">Moto</label>
    </p>
    <p>
        <input type="button" value="Verificar" onclick="verificacao()">
    </p>
            <div id="res">
                Preencha as informações acima para obter resultados!
            </div>
        </div>
    </section>
     <footer>
         <p>&copy;DETRAN</p>
        </footer>
        <script src="https://pt.stackoverflow.com/script.js"></script>
</body>
</html>

Quero criar uma função pra que quando o usuário digite o código desejado isso seja somado a "scrapeProduct(‘https://www.nike.com.br/’ " e retorne

const puppeteer = require('puppeteer');

async function scrapeProduct(url) {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);

    const (el) = await page.$x('//*(@id="detalhes-produto")/div(1)/div(1)/div/div(1)/a/img');
    const src = await el.getProperty('src');
    const imgURL = await src.jsonValue();

    const (el2) = await page.$x('//*(@id="detalhes-produto")/div(1)/div(3)/div/div(2)/div(1)');
    const txt = await el2.getProperty('textContent');
    const name = await txt.jsonValue();

    const (el3) = await page.$x('//*(@id="detalhes-produto")/div(1)/div(3)/div/div(2)/h3');
    const txt2 = await el3.getProperty('textContent');
    const date = await txt2.jsonValue();

    const (el4) = await page.$x('//*(@id="detalhes-produto")/div(1)/div(3)/div/div(2)/div(2)/span/span/span');
    const txt3 = await el4.getProperty('textContent');
    const price = await txt3.jsonValue();

    const (el5) = await page.$x('//*(@id="produto")/script/text()');
    const txt4 = await el5.getProperty('textContent');
    const size = await txt4.jsonValue();

    console.log({imgURL, name, date, price, size});

    browser.close();
}

scrapeProduct(‘https://www.nike.com.br/’ + ‘air-jordan-1-153-169-211-288623’);

Como resolver isso, unity [fechada]

NullReferenceException: Object reference not set to an instance of an object
gun.ShootRaycast () (at Assets/Script/gun.cs:23)
gun.Update () (at Assets/Script/gun.cs:17)

using UnityEngine;

public class gun : MonoBehaviour
{

PlayerLook cam;

private void awake()
{
    cam = transform.parent.GetComponent<PlayerLook>();
}

void Update()
{
    if(Input.GetKeyDown(KeyCode.Mouse0))
    {
        ShootRaycast();
    }
}
void ShootRaycast() {

    RaycastHit hitInfo;
    if(Physics.Raycast(cam.transform.position, cam.GetForwardDirection(), out hitInfo, Mathf.Infinity, LayerMask.GetMask("hittable")))
    {

        IShotHit hitted = hitInfo.transform.GetComponent<IShotHit>();
        if(hitted != null) 
        {
            hitted.Hit(cam.GetForwardDirection());
        }
    }
}

}

Esse exemplo só funciona se eu atribuir o valor "0" para a variavel "total" pq isso acontece?

let res = document.querySelector('div#res');
let lista = document.querySelector('select#lista');
let numeros = ();
let media;
let total = 0;

function adicionar(){
    let num = document.querySelector('input#num').value;
    numeros.push(parseInt(num))

    let item = document.createElement('option');
    item.text = `Numero ${num}`
    lista.appendChild(item);
}

function calcular(){
    for(let i = 0; i < numeros.length; i++){
        total = total + numeros(i);
    }
    media = total / numeros.length;

    res.innerHTML = `Total ${total}  Media ${media}`
}