【问题标题】:Express routes giving 500 internal server提供 500 个内部服务器的快速路由
【发布时间】:2019-02-18 10:46:20
【问题描述】:

我的服务器找不到我在 api 目录中创建的 api。它通向 500 个内部服务器。

我检查了 routes.js,但我发现一切正常。我有一个用于文件处理的 error.js 文件。这是我的代码。

'use strict';

let router = require('express').Router();

// Middleware
let middleware = require('./controllers/middleware');
router.use(middleware.doSomethingInteresting);

// Tasks
let tasks = require('./controllers/tasks');
let createkeypairs = require('./controllers/createkeypairs');
let importaddress = require('./controllers/importaddress');
let getwalletinfo = require('./controllers/getwalletinfo');

router.get('/tasks', tasks.findAll2);
router.get('/createkeypairs', createkeypairs.findAll);
router.get('/importaddress', importaddress.findAll);
router.get('/getwalletinfo', getwalletinfo.findAll);
router.post('/buggyroute', tasks.buggyRoute);



// Error Handling
let errors = require('./controllers/errors');
router.use(errors.errorHandler);

// Request was not picked up by a route, send 404
router.use(errors.nullRoute);

// Export the router
module.exports = router;

现在向您展示我的 createkeypairs.js

'use strict';

let errors = require('./errors.js');
var request = require("request");
var options = { method: 'POST',
    url: '127.0.0.1:18332',
    headers: 
    {  'Authorization': 'Basic bXVsdGljaGFpbnJwYzpHTmJ5enJhMnlHRjN4Ymp1cnluRTFucTlnV1ExRXV3OTFpYVBqSkt5TkJxdA==',
    'cache-control': 'no-cache',
    'Cache-Control': 'no-cache',
    'Content-Type': 'application/json' },
    body: { method: 'createkeypairs', params: [], chain_name: 'tokenchain' },
    json: true };

exports.findAll = (req, res, next) => {
// Simulate task list, normally this would be retrieved from a database
let createkeypairs ;
request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log("working here ");
    // res.json(body);

});

};

exports.buggyRoute = (req, res, next) => {
    // Simulate a custom error
    next(errors.newHttpError(400, 'bad request'));
};

【问题讨论】:

  • 您想访问哪个网址?
  • @Weedoze 我正在尝试访问 localhost:3000/createkeypairs
  • 如果您收到 500:internal 错误,这意味着您可以访问您的 API,但它有错误。检查您的日志或响应的详细信息
  • 能否贴出createkeypairs的代码
  • @TRomesh 我已经分享了 createkeypairs.js 文件。你能帮忙吗?

标签: javascript api express http-status-code-500


【解决方案1】:

我认为问题出在 createkeypair 文件中。

为您的 createkeypairs.js 尝试此代码一次:

'use strict';

let errors = require('./errors.js');
var request = require("request");
let config = require('config');

var auth = 'Basic ' + Buffer.from(config.user + ':' + config.pass).toString('base64');
var url = config.url;
var chain = config.chain;

var options = { method: 'POST',
    url: url,
    headers: 
     { 'cache-control': 'no-cache',
            Authorization : auth,
         'Content-Type': 'application/json' },
    body: { method: 'importaddress', params: ["address"], chain_name: chain },
    json: true };

exports.findAll = (req, res, next) => {
    // Simulate task list, normally this would be retrieved from a database
    let createkeypairs ;

request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(body);
    res.json(body);
});
};

exports.buggyRoute = (req, res, next) => {
    // Simulate a custom error
    next(errors.newHttpError(400, 'bad request'));
};

请告诉我它是否有效。

【讨论】:

  • 伟大的@adarshajha
猜你喜欢
  • 2019-07-19
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2022-12-01
相关资源
最近更新 更多