Der Fehler "Das erste Argument muss eine Zeichenfolge oder ein Puffer sein" wird angezeigt


Zyklope
// call the packages
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var figlet = require('figlet');
var querystring = require('querystring');
var http = require('http');
var fs = require('fs');
var request = require('request');

// configure app to use bodyParser()
// this will let app get the data from a POST
app.use(bodyParser.urlencoded({
    extended: true
}));
app.use(bodyParser.text());

// set port
var port = process.env.PORT || 8082;

// get an instance of the express Router
var router = express.Router();


// middleware to use for all requests
router.use(function(req, res, next) {

    // do logging
    console.log('UnitGener router invoking');
    // go to the next routes and don't stop here
    next();
});

// test route to make sure everything is working (accessed at GET http://localhost:8082/api)
router.get('/status', function(req, res) {
    res.json({
        message: 'UnitGener is ready to work!'
    });
});


//noinspection JSUnresolvedFunction
router.route('/function')

    .post(function(req, res) {
        console.log(req.body);
        var formatted = req.body;


        request.post({
            headers: {
                'content-type': 'application/x-www-form-urlencoded'
            },
            url: 'http://localhost:5000/generate',
            body: formatted
        }, function(error, response, body) {
            console.log(body);
        });

    });

app.use('/api', router);
app.listen(port);
});

Hier ist mein vollständiger Code zum Erstellen einer POST-Route mit den angegebenen Konfigurationen. Anschließend rufe ich eine andere Post-Route innerhalb der Post-Methode auf. Aber ich bekomme den "neuen TypeError werfen ('erstes Argument muss eine Zeichenfolge oder ein Puffer sein');" dieser Fehler. Ich habe einige Google-Suchvorgänge durchgeführt und auch einige Änderungen vorgenommen. Keiner von ihnen hat funktioniert und es fällt mir immer noch schwer, auf den Fehler hinzuweisen. Ich habe den Body geändert: formatiert in body: formatiert.toString (), aber es hat nicht funktioniert. Bitte geben Sie mir einen Rat, um dies herauszufinden. Es ist eine große Hilfe für mich.

Danke im Voraus

refext

Der Fehler liegt im Anforderungsaufruf. Um das Formular korrekt einzureichen, verwenden Sie

    request.post({
        url: 'http://localhost:5000/generate',
        form: formatted
    }, function(error, response, body) {
        console.log(body);
    });

Ich empfehle Ihnen, das npm-Modul request-versprechen-native zu verwenden: https://github.com/request/request-promise-native https://www.npmjs.com/package/request-promise

var rp = require('request-promise');

var options = {
    method: 'POST',
    uri: 'http://api.posttestserver.com/post',
    body: {
        some: 'payload'
    },
    json: true // Automatically stringifies the body to JSON 
};

rp(options)
    .then(function (parsedBody) {
        // POST succeeded... 
    })
    .catch(function (err) {
        // POST failed... 
    });

Verwandte Artikel


Warum wird dieser Fehler in der Eingabeaufforderung angezeigt?

MaxFriedman Also habe ich ein Tutorial auf Youtube verfolgt, um mit der Codierung von PHP zu beginnen ( https://www.youtube.com/watch?v=OK_JCtrrv-c) Und mir wurde gesagt, ich solle "php -v" in die Eingabeaufforderung eingeben, um PHP sicherzustellen arbeitete.

In der Konsole wird der Fehler „Fehlender Zugriff“ angezeigt

Xilon Ich arbeite an einem Befehl zum Hinzufügen einer Rolle in discord.jsVersion 13, und dies ist der Fehler, den ich erhalte: Fehler const { MessageEmbed } = require("discord.js"); const Discord = require("discord.js") const config = require("../../botconfig

Wie wird ein Ajax-Fehler in der Teilansicht angezeigt?

Herrlich Ich habe eine wirklich einfache NodeJSAnwendung geschrieben, mit der sich der Benutzer anmelden kann. Jetzt bin ich ein Neuling und NodeJSversuche zu verstehen, wie ich den Ajax-Fehler mithilfe von a PartialViewaus dem Login anzeigen kann view. Ersten