2017-08-08 14 views
2

私は、Swagger、Express、Nodeと連携して、エンドポイントを定義して実行しています。 localhost/docsのGETリクエストは、すべての関連するルートを返します。しかし、私はいずれかの経路上のGETリクエストをしようとすると、それはミドルウェアを初期化しながらSwagger、Express、Node.jsで「Can not get /」

Index.js

'use strict'; 

var fs = require('fs'), 
path = require('path'), 


// Basic Setup new express 
http  = require('http'), 
express = require('express'), 
mysql = require('mysql'), 
parser = require('body-parser'); 


var swaggerTools = require('swagger-tools'); 
var jsyaml = require('js-yaml'); 



// Setup express 
var app = express(); 
app.use(parser.json()); 
app.use(parser.urlencoded({ extended: true })); 
app.set('port', process.env.PORT || 5000); 

// Database Connection 
var connection = mysql.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : 'root', 
    database : 'sample_database' 
}); 
try { 
    connection.connect(); 
    console.log('Database connected!'); 

} catch(e) { 
    console.log('Database Connetion failed:' + e); 
} 

// swaggerRouter configuration 
var options = { 
    swaggerUi: path.join(__dirname, '/swagger.json'), 
    controllers: path.join(__dirname, './controllers'), 
    useStubs: process.env.NODE_ENV === 'development' // Conditionally turn on stubs (mock mode) 
}; 

// The Swagger document (require it, build it programmatically, fetch it from a URL, ...) 
var spec = fs.readFileSync(path.join(__dirname,'api/swagger.yaml'), 'utf8'); 
var swaggerDoc = jsyaml.safeLoad(spec); 

// Initialize the Swagger middleware 
swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) { 

    // Interpret Swagger resources and attach metadata to request - must be first in swagger-tools middleware chain 
    app.use(middleware.swaggerMetadata()); 

    // Validate Swagger requests 
    app.use(middleware.swaggerValidator()); 

    // Route validated requests to appropriate controller 
    app.use(middleware.swaggerRouter(options)); 

    // Serve the Swagger documents and Swagger UI 
    app.use(middleware.swaggerUi()); 

    // Create server 
    http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Server listening on port ' + app.get('port')); 
    }); 



}); 

を "/ XXXをゲットすることはできません" を返し、私が使用してみました:

app.use(express.static(__dirname + './controllers')); 

しかし、エラーはまだ存在します。私はこれがルーティングと関係があると思いますが、どこにエラーがあるのか​​分かりません。

コードのディレクトリ構造は以下の通りである:

-my_app 
    | 
    +--controllers 
    | | 
    | +--user.js 
    | +--userService.js 
    +--index.js 

答えて

0

この構成index.js

require('./controllers/<your_routing_file>')(app); 

及びタイプルートないを使用してみてください

関連する問題