怎么将一个 express 程序转换成模块化? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whileFalse
V2EX    Node.js

怎么将一个 express 程序转换成模块化?

  •  
  •   whileFalse 2017-05-07 09:00:17 +08:00 3197 次点击
    这是一个创建于 3080 天前的主题,其中的信息可能已经有所发展或是发生改变。
    外行,请见谅。
    简单的说,假设我有两个网站,都是用 express 写的。分别是:
    blog.domain.com、about.domain.com
    现在我希望将其转换为:
    domain.com/blog、domain.com/about。
    通过一个现成的路由工具来分发。
    那么对于原有的 blog express 程序来说,本来对其的访问 /20170507,就要变成 /blog/201706507。
    我知道通过 route 功能可以让 /blog/201706507 返回 原有的 /20170507 的内容。
    但是这还涉及到页面内链接,原有链接到 /20170507 的标签要重写到 /blog/20170507。这应该怎么做呢?程序使用 gulp 打包。

    谢谢。
    10 条回复    2017-05-08 01:08:42 +08:00
    hareandlion
        1
    hareandlion  
       2017-05-07 09:12:10 +08:00 via iPhone   1
    我的设想是前台重写 jQuery 的 post 和 get (业务主要用了这两个)方法,在原 URL 中加入模块的 URL,不过貌似有点太底层了,即使只在一个页面里使用,影响范围也超出预期,出现各种意想不到的错误
    ljcarsenal
        2
    ljcarsenal  
       2017-05-07 09:38:40 +08:00   1
    nginx
    whileFalse
        3
    whileFalse  
    OP
       2017-05-07 09:49:10 +08:00
    @ljcarsenal 不考虑通过负载均衡。
    whileFalse
        4
    whileFalse  
    OP
       2017-05-07 09:58:30 +08:00
    @ljcarsenal 更深入一点说,有几个原因:
    1. 已经有了一层负载均衡,不希望再搞个 Nginx。
    2. 嫌 Nginx 配置起来什么的比较费事。还有一些没有在问题中提到的需求用 nodejs 写比较方便。
    watzds
        5
    watzds  
       2017-05-07 10:07:32 +08:00 via Android
    标签?查找全局替换行吗?
    watzds
        6
    watzds  
       2017-05-07 10:13:53 +08:00 via Android   1
    如果是 /20170507 这种相对路径,还有个<base>标签可以设置基准 url
    Mikewu
        7
    Mikewu  
       2017-05-07 10:17:47 +08:00   1
    express 不太清楚,koa 的话倒是有一个中间件 koa-mount 可以实现你的需求
    jarlyyn
        8
    jarlyyn  
       2017-05-07 11:06:51 +08:00 via Android
    用中间件的框架做这种都很简单。

    问题是怎么修改页面上的内链。
    xiadd
        9
    xiadd  
       2017-05-07 11:20:23 +08:00   1
    @Mikewu express 本身就有 subapp 的概念,可以直接 mount 到父级路由
    ychongsaytc
        10
    ychongsaytc  
       2017-05-08 01:08:42 +08:00 via iPhone
    subapp 很轻松。楼主的关键问题是 express 渲染的 HTML 里的锚链地址如何跟随着自动变化。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2391 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 01:18 PVG 09:18 LAX 18:18 JFK 21:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86