出口和要求快递申请问题

Exporting and requiring Express application issue

以下面的基本 Express: 'Hello World' 示例作为我的起点:

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello World!');
});

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('App listening at http://%s:%s', host, port);
});

我正在尝试将代码组织在不同的 .js 文件中以分离配置和路由。

这样我会 app.js:

var express = require('express');
var app = express();

var server = app.listen(3000, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('App listening at http://%s:%s', host, port);
});

// Expose app
exports = module.exports = app;

/routes/api.js(在名为routes的子目录中有api.js):

var app = require('../app.js');

app.get('/', function (req, res) {
  res.send('Hello World!');
});

但是 exports = module.exports = app;var app = require('../app.js'); 不工作:我在调用 API 方法时一直收到消息 Cannot GET /

你应该制作 app.js 你的 'main' 文件,路由应该包含在里面。

您的路由文件应该如下所示:

var express = require('express');
var router = express.Router();

router.get('/', function (req, res) {
  res.send('Hello World!');
});

module.exports = router;

并在您的 app.js 中添加:

var api = require("./routes/api.js");
...
//all your code for creating app 
...
app.use('/', api);