当前位置: 首页 > 知识库问答 >
问题:

在一台服务器上运行的多个项目的Express.js路由

左劲
2023-03-14

我对Node.js相当陌生,对Javascript也相当陌生(我不把使用jQuery的简单动画算作js)。作为一名Web开发人员,我正在从PHP/MySQL转向Express/Mongo。

我喜欢事物整洁的想法--只要在性能上没有明显的损失。由于node是如此快速的发展,我发现很难找到具体的意见和答案,我的路由方法为当前版本的node(我发现的大多数帖子似乎是不相关的,并已超过两年)。

|- app.js
    |- routes
        |- blog.js

我使用blog.js作为所有博客相关内容的网关。这包括用函数注册GET和POST请求,以及处理页面呈现。

一个电话就把一切都搞定了。

我的app.js有以下内容:

... //basic express installation
var db = ... //mongoose database connection

require('./routes/blog')(app, db, '/blog'); //starts the blog up

blog.js看起来是这样的:

var db = null;
var basedir = null;

module.exports = function(app, _db, _basedir){
  db = _db;
  basedir = _basedir;

  app.get (basedir, pages.home );
  app.get (basedir + '/show/:id', pages.getBlog );

  /*app.get(basedir + '/*', function(req, res) {
    res.redirect(basedir);
  });*/ 
};

var pages = {
      home : function(req, res) {
        // whatever
    }

    , getBlog : function(req, res) {
        // whatever
    }
}

我知道这管用--我的问题是,这是不是传统的?这是不推荐的东西吗?是不是浪费记忆?为什么人们把app.gets放在app.js中而不是一个外部文件?当前主要使用的路由方法是什么(我在同一台服务器上开发多个小型应用程序,因此我希望我的app.js尽可能少)。

共有1个答案

陆俭
2023-03-14

您所概述的方式是完全可以接受的,在我看来,我更喜欢只有一个大的app.js文件,其中包含所有路由和其他所有内容。

许多人对代码分离的理解远远超出了您所概述的范围,特别是在试图遵循MVC和MVC模式时。

举个例子,这是我一直在做的一个样板项目,它甚至可能会在分离问题上做得有点过火。这并不是一个成品,只是一些我在玩的东西,它取了一些我喜欢的其他样板,框架等不同的部分。从那以后我学到了一些东西,我可能会在某个时候对它进行调整。

NemoJS-My Node/Express/Mongoose/Jade/stylus/twitter_BStrap样板项目

要记住的一件事是,你把它分离的越多,追踪问题的难度就越大。不过,这并不是一个足够好的理由让你不能保持条理。这就是我们的目标,对吧?

 类似资料:
  • 5.12.1. 在Windows下运行多个服务器 5.12.2. 在Unix中运行多个服务器 5.12.3. 在多服务器环境中使用客户端程序 在一些情况下,你可能想要在同一台机器上运行多个mysqld服务器。你可能想要测试一个新的MySQL发布,同时不影响现有产品的设置。或者,你可能想使不同的用户访问来访问不同的mysqld服务器以便他们自己来管理。(例如,你可能是一个Internet服务提供商,

  • null null 谢谢你的回答。

  • 问题内容: 我正在将一些后端转换为模块,并在设置开发环境配置时感到困惑。我在Eclipse中使用Java,但未在Maven中使用Java。架构非常简单: 前端模块为默认模块。基本的GAE / GWT应用程序。将项目放入任务队列。 后端模块处理任务队列。 使用旧的后端体系结构,一个调试配置将启动开发服务器,该服务器将为GWT DevMode UI 和 后端任务处理提供服务。 问题的症结在于DevMo

  • 我在Ubuntu 18.04上下载了两个版本的neo4j-community-3.5.12和neo4j-community-3.5.8。 我用默认设置运行3.5.8,我可以从网上看到它。http://localhost:7474/ 对于3.5.12,我更改了conf/neo4j.conf文件,并设置了一些其他端口号,以避免与默认端口号冲突。 这里有一个现有的/d1/data/database/gr

  • 问题内容: 我有一台运行带有220 GB内存的Ubuntu 14.04的服务器,我想在该服务器上运行elasticsearch。根据文档,一个节点不应具有超过32 GB的RAM,因此我想我必须在一台计算机上运行多个节点才能利用所有RAM。我正在考虑运行4个节点,每个节点具有28 GB的内存。 如何将其设置为ubuntu服务,以便例如在系统重新引导后自动恢复所有节点?我想我必须以某种方式编辑/etc

  • 我有一个应用程序在各种OSGI捆绑包中分离,这些捆绑包在单个Apache Karaf实例上运行。但是,我想迁移到微服务框架,因为 Apache Karaf由于其依赖机制和 我希望以后能够将应用程序带到云端(AWS、GCloud等) 我做了一些研究,查看了各种框架,并得出结论,Quarkus可能是正确的选择,因为它基于容器的方法、性能和可能的云集成机会。 现在,我在某一点上苦苦挣扎,到目前为止我还没