2016-09-20 21 views
1

我是nodejs的新手,我想處理app/routes.js中的所有路由和api,我使用路由器來獲取和發佈客戶端。我沒有看到從服務器到客戶端的任何迴應與下面的代碼,任何想法?如何使用express從單獨的文件爲客戶端創建api?

app.js

var express = require('express'); 
var app = express(); 
var server = require('http').createServer(app); 
var io = require('./app/io').initialize(server); 
var ditconsumer = require('./app/consumers/ditconsumer'); 

ditconsumer.start(server); 
server.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
    //stconsumer.start(); 
}); 

應用程序/ routes.js

var express = require('express'); 
var router = express.Router(); 
var dirDirectory = require('./app/serverfiles/ditDir'); 

module.exports = function(app){ 

    router.get('/getAllFiles',function(req,res){ 
    dirDirectory.readDirectory(function(logFiles){ 
     res.json(logFiles); 
     console.log(logFiles); 
    }); 
}); 

    //other routes.. 
} 
+1

你的'app.use(路由器)'在哪裏? – tcooc

+0

不知道我在哪裏添加'app.use(路由器)' – hussain

+0

在'app/routes.js'中,最有可能的。請參閱https://expressjs.com/en/4x/api.html#router。編輯:另外我沒有看到從任何地方導入app/routes'。 – tcooc

回答

2

所以這裏是你做錯了

  1. 你不需要路由的應用程序/路由和使用它作爲中間件
  2. 您必須將路由器導出到PP/routes.js

這裏是你改變的代碼,請嘗試,我知道,如果它幫助

var express = require('express'); 
var app = express(); 
var myroute=require('./app/routes.js'); 
app.use(myroute); 
var server = require('http').createServer(app); 
var io = require('./app/io').initialize(server); 
var ditconsumer = require('./app/consumers/ditconsumer'); 

ditconsumer.start(server); 
server.listen(3000, function() { 
    console.log('Example app listening on port 3000!'); 
//stconsumer.start(); 
}); 

應用程序/ routes.js

var express = require('express'); 
var router = express.Router(); 
var dirDirectory = require('./app/serverfiles/ditDir'); 


router.get('/getAllFiles',function(req,res){ 
    dirDirectory.readDirectory(function(logFiles){ 
     res.json(logFiles); 
     console.log(logFiles); 
    }); 
}); 
module.exports=router; 
    //other routes.. 
    } 

,請不要讓我知道如果這能解決你的問題

+0

感謝它幫助! – hussain

相關問題