表达nodejs,模块化app

时间:2017-12-02 18:09:38

标签: javascript node.js express

我有一个带有以下代码的快速应用程序:

App.js

const express = require('express');
const routes = require('./routes')

const app = express();


app.listen(3000, () => {
    console.log('server started on port 3000')
})

module.exports = app;

Routes.js:

const app = require('./app.js')

app.get('/', (req, res) => {
    res.send('Hello world');
})

module.exports = {
    app
};

当我在nodeJS中运行app.js时,我收到错误: App.get不是函数

  1. 为什么我的app对象未在routes.js文件中导入?
  2. 我如何以不同的方式构建它,以便我可以模块化这段代码?

1 个答案:

答案 0 :(得分:2)

您不能在不是主文件本身的文件中使用 app 。 这样做:

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

router.get('/', (req, res) => {
    res.send('Hello world');
})

module.exports = {
    router
};

然后在你的app.js中这样做:

var routeFile = require('Routes.js');
app.use('/', routeFile);