gpt4 book ai didi

node.js - 获取 "first argument must be a string or Buffer"错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:38:08 25 4
gpt4 key购买 nike

// 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);
});

这是我使用给定配置创建 POST 路由的完整代码,然后我在 post 方法中调用另一个 post 路由。但我收到“抛出新类型错误(‘第一个参数必须是字符串或缓冲区’)”;这个错误。我做了一些谷歌查找,也做了一些更改,但没有一个有效,但仍然发现很难指出错误。我也将 body: formatted 更改为 body: formatted.toString() 但没有用。请给我一些建议来找出这个问题。这对我来说是一个巨大的帮助。

提前致谢

最佳答案

错误在请求调用中。要正确提交表单,请使用

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

我鼓励您使用 npm 模块 request-promise-native: 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...
});

关于node.js - 获取 "first argument must be a string or Buffer"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com