导出并要求Express应用程序问题

时间:2015-11-04 19:09:47

标签: javascript node.js express module

将以下基本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(在名为api.js的子目录中包含routes):

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 /

1 个答案:

答案 0 :(得分:2)

你应该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); 添加:

{{1}}