gpt4 book ai didi

javascript - 针 : node. js 在 POST 上返回 500

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:23 26 4
gpt4 key购买 nike

我有自己的 REST API,它在内部调用 NLP API,为此我必须在其 URL 上发布一些数据。我正在使用needle来实现这一点,但是有一些错误我无法捕获,并且我自己的api正在向前端返回500。

这是我的 server.js 代码的一部分:

app.post('/api/get',function(req,res) {
//console.log(req);
console.log("here in post ");
if(!req.body){
return res.send(400);
}
//console.log(req.body.msg);
var searchQuery = req.body.msg;
var options = { 'api-key' : '3080a0e0-1111-11e5-a409-7159d0ac8188' };

needle.post('http://api.cortical.io:80/rest/text/keywords?retina_name=en_associative',searchQuery,options,function(err, resp){
if(err){
console.log('something went wrong :' + err);
}
console.log('Got :'+resp );
});

我每次都会在帖子中到达此处,但此后什么也没有。我也很好奇这是否是为外部 API 指定 api-key 的正确方法。

谢谢。

最佳答案

如果您使用的是express 4.x,我不确定您是否配置了express服务器,但您需要安装body-parser并在express配置中添加以下行:

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

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

如果您使用的是express 3.x版本,则不需要安装body-parser:

var express = require('express');
var app = express();

app.use(express.json());
app.use(express.urlencoded());


现在关于你的帖子路线我稍微编辑了一下:

var config = require('./config');

app.post('/api/get', function (req, res) {
var searchQuery = {
q: req.body.msg
};

var NEEDLE_API_KEY = config.needle.API_KEY;
var NEEDLE_URL = config.needle.URL;

var options = {
'api-key': NEEDLE_API_KEY
};

needle.post(NEEDLE_URL, searchQuery, options, function (err, needleResponse) {
console.log(err || needleResponse.body);
res.json(err || needleResponse.body);
});

});

因此,我添加了一个名为 config.js 的新文件,以便为您的所有 api key 、第三方服务的 URL 提供引用。

module.exports = {
needle: {
API_KEY: process.env.NEEDLE_API_KEY,
URL: 'http://api.cortical.io:80/rest/text/keywords?retina_name=en_associative'
}
};

因此,当您在控制台运行服务器时,您应该将一个值传递给名为 NEEDLE_API_KEY 的全局环境变量:

NEEDLE_API_KEY=666 node app.js

因此,通过这种方式,您不会在源代码上保存任何 key ,而是将 key 保存在仅在服务器计算机上可用的全局环境变量中。

关于javascript - 针 : node. js 在 POST 上返回 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682976/

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