Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在部署时,获取空路径是招摇过市的关键。当地人正在工作_Javascript_Node.js_Swagger_Swagger Ui - Fatal编程技术网

Javascript 在部署时,获取空路径是招摇过市的关键。当地人正在工作

Javascript 在部署时,获取空路径是招摇过市的关键。当地人正在工作,javascript,node.js,swagger,swagger-ui,Javascript,Node.js,Swagger,Swagger Ui,我正在使用swagger jsdoc。一切似乎都很好,我一直在使用json,直到我使用localhost,当我使用live url时,它没有给我任何东西 { "info": { "title": "App API", "version":"0.0.0", "description":"Server API documentation" }, "host":"something.com", "basePath":"/"

我正在使用
swagger jsdoc
。一切似乎都很好,我一直在使用json,直到我使用
localhost
,当我使用live url时,它没有给我任何东西

{
    "info": {
        "title": "App API",
        "version":"0.0.0",
        "description":"Server API documentation"
    },
    "host":"something.com",
    "basePath":"/",
    "schemes":["https"],
    "swagger":"2.0",
    "paths":{},
    "definitions":{},
    "responses":{},
    "parameters":{},
    "securityDefinitions":{},
    "tags":[]
}
这就是我在现场看到的。相同的代码在
localhost/swagger.json上工作,但在
https://something.com/swagger.json

var swaggerJSDoc = require('swagger-jsdoc');

var swaggerOptions = {
    swaggerDefinition: config.swaggerDefinition || {
        info: { // API informations (required)
            title: 'Hello World', // Title (required)
            version: '1.0.0', // Version (required)
            description: 'A sample API', // Description (optional)
        },
        host: 'localhost:3000', // Host (optional)
        basePath: '/', // Base path (optional)
    },
    apis: ['./routes/*.js'], // Path to the API docs
};

var swaggerSpec = swaggerJSDoc(swaggerOptions);

router.get('/swagger.json', function(req, res) {
  res.setHeader('Content-Type', 'application/json');
  res.send(swaggerSpec);
});

问题可能是
config.swaggerDefinition
中的主机选项有问题。它是否设置为正确的域?

我以前遇到过同样的问题。如果你使用的是pm2,你可能会遇到和我一样的问题

在我的例子中,当我将
api
中的
路径从使用

apis: [ './routes/*.js' ]
进入

因此使用
\uuu dirname
而不是


希望这有帮助

这个问题是由于路线的路径引起的

我使用的是
api:['./routes/*.js']

但是我的服务器有路径
/bin/www
,因此在这些情况下
/routes
根本不起作用,实现这一点的最佳方法是使用
\uu dirname
。 例如


我在同一天解决了这个问题,但忘了在这里添加答案。

即使您为localhost添加了一个
/etc/hosts
条目并尝试使用新条目访问它,也是这样吗?即使我面临同样的问题,本地的一切都很好,但在开始使用时获得了基本的json。希望你已经解决了这个问题。如果是,请帮助。这更适合作为评论而不是回答。
apis: [ __dirname + 'routes/*.js' ]
apis: [`${__dirname}/routes/*.js`]