NPM auf RaspberryPi geht nicht?

Guten Tag,

ich nutze viel NodeJS, leider kann ich auf meinem RaspberriPi kein npm nutzen, ich muss daher alles auf meinem PC installieren und dann inklusive node module hochladen. Wie fix ich NPM? Fehler:

TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)
    at Module._compile (node:internal/modules/cjs/loader:1097:14)

 
Computer, Technik, Installation, Fehlerbehebung, Technologie, Raspberry Pi, node.js, npm
Warum kommt da dieser Fehler?

Hi, ich habe bereits eine Frage zu dem Thema gestellt, und möchte bei dieser hier nur mehr ins Detail gehen. Ich bin gerade dabei ein Discord Login auf einer Seite zu implementieren. Dabei kommt aber die ganze Zeit ein Fehler und ich weiß nicht, wie ich diesen beheben kann... Die Konsole sagt, dass dieser Fehler in Zeile 49 ist, und in dieser Zeile befindet sich folgendes:

fetch('https://discord.com/api/oauth2/token', {
        method: "POST", body: data_1
    })
        .then(response => response.json())
        .then(data => { // Make a request to the Discord API with the form data, convert the response to JSON, then take it and run the following code.
            axios.get("https://discord.com/api/users/@me", make_config(data.access_token)).then(response => { // Make a request yet again to the Discord API with the token from previously.
                res.status(200).send(response.data.username); // Send the username with a status code 200.
            }).catch(err => { // Handle any errors in the request (such as 401 errors).
                console.log(err); // Log the error in the console
                res.sendStatus(500); // Send a 500 error.
            });
        });

Fehleranzeige in der Konsole:

TypeError: fetch is not a function
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\oauth.js:49:5
    at Layer.handle [as handle_request] (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\body-parser\lib\read.js:130:5
    at invokeCallback (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\raw-body\index.js:224:16)

Wie man aus dem Fehler erkennen kann, bemengelt die Konsole, dass "fetch" keine Funktion ist. Ich habe aber den Syntax von fetch gegoogelt und es nochmal überprüft aber keinen Fehler gefunden. Vielleicht sieht einer von euch einen Fehler im Code.

Ganzer Code:

https://jsfiddle.net/Atrapfare/zLedj3pf/

Danke für jede Antwort!

HTML, Webseite, JavaScript, node.js, Discord, npm
Discord.js Level Roles?
  //level system


  bot.on('message', function(message){
    if(message.author.bot) return;
    var addXP = Math.floor(Math.random() * 5) + 1;


    if(!xpfile[message.author.id]){
      xpfile[message.author.id] = {
        xp: 0,
        level: 0,
        reqxp: 100
      }


      fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
        if(err) console.log(err)
      })
    }


  xpfile[message.author.id].xp += addXP


  if(xpfile[message.author.id].xp > xpfile[message.author.id].reqxp){
    xpfile[message.author.id].xp -= xpfile[message.author.id].reqxp
    xpfile[message.author.id].reqxp *=1.5
    xpfile[message.author.id].reqxp = Math.floor(xpfile[message.author.id].reqxp)
    xpfile[message.author.id].level += 1


    message.reply("ist auf Level **"+ xpfile[message.author.id].level +"** aufgestiegen.")
  }



  fs.writeFile("./xp.json",JSON.stringify(xpfile),function(err){
    if(err) console.log(err)
  
  //level roles


var role = message.guild.roles.cache.find(role => role.name === "test");


if(xpfile[message.author.id].level == 1)message.member.guild.roles.add(role);


  //rank command


  if(message.content.startsWith("fg!rank")){


    let user = message.mentions.users.first() || message.author


    if(!xpfile[user.id]) return message.channel.send("Dieser User hat noch keine XP gefarmt.")


    const rank = new Discord.MessageEmbed()


    .setTitle("**RANK**")
    .setColor("GREEN")
    .setAuthor(user.tag,user.avatarURL({dynamic:true}))
    .addField("Level: ",xpfile[user.id].level)
    .addField("XP: ",xpfile[user.id].xp +"/"+ xpfile[user.id].reqxp)


    message.channel.send(rank)
  }


    })


  })

Hey, ich habe ein LevelSystem in Discord.js gecodet.

Es funktioniert sehr gut, aber bei den LevelRoles gibt es ein Problem.

Es kommt kein Error oder sonstiges, aber der Bot vergibt die Role nicht. Weiß jemand woran das liegt?

Computer, JavaScript, node.js, Discord, Discord Bot, Discord.js
HTML Email Style wird nicht richtig gerendert?

Folgender Code:

<html>
    <body>
        <div style="font-family: arial;">
            <h1 style="color: #007bff; letter-spacing: 2px; font-weight: 500;">Neue Nachicht von der Website!</h1>
            <div>
                <h2 style="margin-top: 2rem; margin-bottom: .5rem; letter-spacing: 2px; font-weight: 500;">Kontaktdaten</h2>
                <div style="margin-right: 70px; display: inline-block;">
                    <p style="margin: .6rem 0;">Vorname:</p>
                    <p style="margin: .6rem 0;">Nachanme:</p>
                    <p style="margin: .6rem 0;">Email Adresse:</p>
                    <p style="margin: .6rem 0;">Telefonnummer:</p>
                </div>
                <div style="display: inline-block;">
                    <p style="margin: .6rem 0;">${ firstname }</p>
                    <p style="margin: .6rem 0;">${ lastname }</p>
                    <p style="margin: .6rem 0;"><a style="color: #007bff; text-decoration: none;" href="mailto:${ email }">${ email }</a></p>
                    <p style="margin: .6rem 0;">${ htmlPhone }</a></p>
                </div>
            </div>
            <div>
                <h2 style="margin-top: 3rem; margin-bottom: 1rem; letter-spacing: 2px; font-weight: 500;">${ subject }</h2>
                <div style="font-size: 17px; padding-right: 11%; max-width: 900px;">${ message }</div>
            </div>
        </div>
    </body>
</html>

Eigentlich sollten bei den Kontaktdaten 2 Divs nebeneinander sein. Funktioniert auch wenn ich die Email über gmail.com aufrufe. Aber nicht in Windows Mail etc. Woran liegt das?

Computer, HTML, Style, programmieren, CSS, E-Mail-Adresse, node.js
HTML Formular Input in SQLite Datenbank speichern, (mit NodeJS) wie?

Hallo. Ich möchte den Input eines HTML-Formulars mit Hilfe von Node in eine SQLite Datenbank einfügen.

Mein index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello world!</title>
    <script src="sqlite.js"></script>
</head>
<body>

    <form action="/team_name_url/" method="post">
        <label for="team_name">Enter name: </label>
        <input id="team_name" type="text" name="name_field" value="Default name for team.">
        <input type="submit" value="OK">
    </form>

</body>
</html>

Mein sqlite.js:

const sqlite3 = require('sqlite3');
const db = new sqlite3.Database('./sqlite.db');

let express = require('express');
let app = express();
const bodyParser= require('body-parser');


app.use(bodyParser.urlencoded({extended:true}));

app.post('/',(req,res)=>{
let placeName = req.body.PlaceName; 
});


db.run(`INSERT INTO places (id, name, coords) VALUES(4, ${placeName}, '1234, 5678');`, function(err) {
    if (err) {
        return console.log(err.message);
    }

    console.log(`A row has been inserted with rowid ${this.lastID}`);


});

db.close();
SQL, HTML, programmieren, JavaScript, Datenbank, SQLite, node.js, node
apt-get update Fehler?

Hallo!

Wenn ich den Befehl "sudo apt-get install update" in der bash auf Ubuntu ausführe, bekomme ich am Ende folgende Fehlermeldung:

E: Das Depot »http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu disco Release« enthält keine Release-Datei.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
E: Das Depot »http://ppa.launchpad.net/hsoft/ppa/ubuntu disco Release« enthält keine Release-Datei.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
N: Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://dl.google.com/linux/earth/deb stable InRelease« die Architektur »i386« nicht unterstützt.
Error executing command, exiting

Das tritt auch bei folgendem Befehl auf, mit dem ich eine nodejs Paketquelle hinzufügen möchte:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

Ich vermute, dass durch diesen Fehler die Quelle nicht hinzugefügt wird, denn wenn ich "sudo apt-get install nodejs" eintippe, ich immer noch nur eine 10.x... Version bekomme.

Was kann ich dagegen tun?

Computer, Technik, Linux, programmieren, Ubuntu, Bash, Shell, Technologie, apt-get, node.js, Spiele und Gaming
Node.js: Werte an HTML Datei übergeben?

Ich habe etwas mit Node.js angefangen und komme einfach nicht mehr weiter. Ich habe das Server erstellen usw. gut verstanden, aber jetzt komme ich nicht mehr weiter. Es kann sein, dass das total einfach ist.

Ich habe anfangs einen Server erstellt. Nun habe ich eine MySQL-Verbindung hergestellt (was auch funktioniert) und mit dem SELECT-Befehl Daten daraus bekommen. Nur stellt sich mir nun einfach die Frage, wie zum Teufel ich den Wert in meine HTML Datei bekomme, um sie auszugeben.

app.js:

var express = require("express");
var app = express();
var mysql = require("mysql");
var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "test"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected to Database!");
});

app.listen(8080, function() {
  console.log("Server is running!");
});

con.query("SELECT id, Zahl FROM test", function(err, result, fields) {
  if (err) throw err;
  console.log(result);
});

app.get("/", function(req, res) {
  res.sendFile(__dirname + "/index.html");
});

Also, wie gesagt, bekomme ich in der Konsole "result" ausgegeben. Aber wie bekomme ich das jetzt z.B. in einen div in meiner index.html?

Und noch eine kleine Nebenfrage: Ist das so richtig, wenn ich einfach andere Seiten so

app.get("/", function(req, res) {
  res.sendFile(__dirname + "/index.html");
});

app.get("/test", function(req, res) {
  res.sendFile(__dirname + "/test.html");
});

erzeugen kann?

Also wenn ich einfach nur mehrere HTML Dateien haben möchte.

Und noch eine kleine Frage: Ich kenne es so, dass man in PHP eigentlich immer MySQL-Datenbanken verwendet. In Node.js geht das ja auch, aber gibt es da auch eine Art vorgesehene Datenbank?

Die kleinen Fragen sind nebensächlich, die erste Frage ist mir erst einmal am wichtigsten. Aber wer es weiß ...

MfG

Tom

Computer, HTML, programmieren, JavaScript, Webentwicklung, node.js
Node.js/Express - req.body funktioniert nicht?

Ich möchte in meiner app.js-Datei Werte aus meiner HTML-Datei benutzen. In meiner HTML-Datei ist ein TextFeld namens "search". Dazu will ich in app.js

var searchText = req.body.search

verwenden, um den Wert des Feldes zu bekommen. Das klappt aber nicht!

Hier mein app.js-Code:

var express = require("express");
var pg = require("pg");
var bodyParser = require("body-parser");
var CON_STRING = process.env.DB_CON_STRING;

if (CON_STRING == undefined) {
  console.log("Error: Environment variable DB_CON_STRING not set!");
  process.exit(1);
}

pg.defaults.ssl = true;
var dbClient = new pg.Client(CON_STRING);
dbClient.connect();

var urlencodedParser = bodyParser.urlencoded({ extended: false });
const PORT = 80;

var app = express();
app.set("views", "views");
app.set("view engine", "pug");
app.get("/search", urlencodedParser, function (req, res) {
  var searchText = req.body.source;
  console.log(searchText); //HIER IST DER FEHLER: Es spuckt "undefined" aus!

  dbClient.query("SELECT * FROM book LIMIT 50 ", function (dbError, dbItemsResponse) {
    res.render("index", {
      BookList: dbItemsResponse.rows
    });
  });
});
app.listen(PORT, function () {
  console.log(App listening on Port ${PORT});
});

Das

console.log(searchText)

gibt mir immer undefined zurück. Wenn ich in der HTML-Datei über ein Script den Wert vom Textfeld ausgebe, dann ist der das, was da drinnen steht. Nur mit req.body scheine ich nicht darauf zugreifen zu können. Ich bekomme immer undefined.

Was mache ich falsch? Wie kann ich es beheben? Hat jemand eine Idee?

Computer, Technik, Programm, HTML, JavaScript, Express, Technologie, node.js, Spiele und Gaming
Was ist Node.js und wofür nutze ich es?

Hallo. Ich bin gerade dabei ein neues Projekt um zu setzen und bin dabei auf eine Bibliothek für Node.js gestoßen was mich veranlasst hat mich ein wenig mit diesem Interpreter auseinander zu setzen. Dabei bin ich aber auf ein paar Fragen gestoßen ,die mir das Internet nicht wirklich gut beantworten konnte. Ich denke aber jemand der sich auskennt könnte mir besser weiter Helfen was das angeht:

Node.js ist ein Interpreter, welcher Serverseitig Javascript Code ausführt und ihm einige Funktionen hinzufügt bzw. andere Clientexclusive Funktionen entfernt. Er ist schnell, arbeitet mehrere Anfragen parallel ab und ist somit perfekt für die Programmierung eines Webservers oder generell Serverseitiger Anwendungen die einer Menge Nutzer zur Verfügung stehen müssen geeignet. Ein paar Fragen habe ich aber:

  • Ist bei der Nutzung von Node.js überhaupt noch die Nutzung von PHP nötig?

  • Kann der Nutzer der Seite den Node.js Code auf irgendeine Weise uncompiliert ansehen (Private Key bla bla bla)

  • Ist es möglich Node.js auf einer Webseite ein zu binden ohne den Webserver mit Node.js um zu setzen? (Bestehender Webserver, kennt ihr bestimmt von Strato usw.) Oder ist das zu Kompliziert und sollte in solchen fällen eher auf PHP zurückgegriffen werden? (Die Performance von Node.js hat mich so vom Hocker gehauen, dass ich es mal nutzen wollte :D)

Danke für eure Antworten! :)

programmieren, JavaScript, PHP, Webserver, node.js

Meistgelesene Fragen zum Thema Node.js