Javascript 如何使用express从单独的文件为客户端创建api?

Javascript 如何使用express从单独的文件为客户端创建api?,javascript,node.js,express,Javascript,Node.js,Express,我是nodejs新手,我想处理app/routes.js中的所有路由和api,我有一个路由器,我正在使用它为客户端获取和发布。我看不到服务器对客户端的任何响应,有什么想法吗 app.js var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('./app/io').initialize(server); var

我是nodejs新手,我想处理app/routes.js中的所有路由和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();
});
app/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..
}
 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..
  }

这就是你做错的地方

  • 您不需要route app/route并将其用作中间件
  • 您必须在app/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();
     });
    
    app/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..
    }
    
     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..
      }
    

    请务必让我知道这是否解决了您的问题

    您的
    应用程序在哪里。使用(路由器)
    ?不确定我最有可能在
    app/routes.js中添加
    app.use(路由器)
    。看见编辑:我也没有看到从任何地方导入
    app/routes