首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何构建express.js应用程序?

如何构建express.js应用程序?
EN

Stack Overflow用户
提问于 2011-10-12 04:48:41
回答 1查看 47.5K关注 0票数 102

在Express.js应用程序中分解和模块化app.js文件是否有一个通用约定?或者,将所有内容保存在单个文件中是很常见的吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-20 03:47:11

我有我的应用程序构建在快速生成器工具之上。您可以通过运行npm install express-generator -g并使用express <APP_NAME>运行它来安装它。

为了给你一个视角,我的一个较小的应用程序的结构看起来像这样:

代码语言:javascript
复制
~/
|~bin
| |-www
|
|~config
| |-config.json
|
|~database
| |-database.js
|
|~middlewares
| |-authentication.js
| |-logger.js
|
|~models
| |-Bank.js
| |-User.js
|
|~routes
| |-index.js
| |-banks.js
| |-users.js
|
|~utilities
| |-fiat-converersion.js
|
|-app.js
|-package.json
|-package-lock.json

我喜欢这种结构的一个很酷的地方是我开发的任何express应用程序都会采用这种结构,这就是路由的组织方式。我不喜欢要求每个路由文件都放到app.js和app.use()中,特别是当文件变得更大的时候。因此,我发现将我的所有路由集中在./ app.use() /index.js文件中是很有帮助的。

最后,我的app.js将如下所示:

代码语言:javascript
复制
...
const express = require('express');
const app = express();

...
require('./routes/index')(app);

我的./routes/index.js将如下所示:

代码语言:javascript
复制
module.exports = (app) => {
  app.use('/users', require('./users'));
  app.use('/banks', require('./banks'));
};

我之所以能够简单地使用require(./users),是因为我使用express.Router()编写了用户路由,它允许我对多个路由进行“分组”,然后一次导出它们,目的是使应用程序更加模块化。

这是在我的./routers/users.js路由上的一个例子:

代码语言:javascript
复制
const router = require('express').Router();

router.post('/signup', async (req, res) => {
    // Signup code here
});

module.exports = router;

希望这能帮助回答你的问题!祝你好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7732293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档