2016-09-20 37 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

相关问题