使用Node.js将URLstring发送到其他脚本

我开始学习Node.js,使用Express和Jade和Mongoose作为我的默认工具箱。 我曾经用PHP开发,迁移到Python,并通过Django学习MVC。 有一个大型的客户端JS游戏和Mozilla.org的一些灵感,我愿意做一个多人游戏 – 并认为这是一个非商业机会学习Node:我可以花时间与它。

但是,我遇到了一个问题。 我不是要自己编写一个MVC系统,而是像大多数MVC那样分离我的网站的“应用程序”。 这个问题可能是基本的 – 有这样的代码块:

app.get(/^blog/, function(req, res) { require("./blog")(); }); 

…我了解Node / Express的URL掩码的基本知识,但是我需要将其余的URLstring( mysite.com/blog后的所有内容)传递给另一个URLparsing脚本。

我search了一会儿,找不到一个好的解决scheme。 我甚至发现了一个关于在Node和Express中构build一个MVCscheme的完整教程,这个scheme是针对较早的Express版本编写的,但是现在有点过分了。 你能给我一个简单的解决scheme吗?

我认为blog/index.js应该是这样的:

 module.exports = function(urlstring) { if(urlstring.indexOf('post') != -1) { // do stuff... } else if(urlstring === '/') { // return home.jade or something } }; 

我希望我清楚。 提前致谢!

有了快递,您无需自行parsing您的url。 我想你会想这样构build你的博客URL

/ blog显示博客文章列表/博客/ post / 1显示编号为“1”的博客文章

使用快递4,您可以为您的博客path或已安装的应用程序设置路由器。 已安装的应用程序允许您让应用程序处理基本URLpath的所有子URL。 有关更多详细信息,请参阅快速文档

我想演示一下如何使用Express 4路由器和express的安装特性来构build博客路由。

 // Set up express app var app = express(); // Set up a router var router = express.Router(); router.get('/', function(req, res) { // Show a list of blog posts } router.get('/post/:id', function(req, res) { // Show a single blog post } // Mount router app.use('/blog', router); 

这个解决scheme的一个好处就是你在路由器中注册的路由总是得到不带/blog前缀的相对URL,所以你可以在像/companyblog这样的URL下的其他项目中重用你的博客路由。