gpt4 book ai didi

node.js - 使用 NodeJS 作为 HTTP 服务器 - 如何避免意大利面条?

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:01 25 4
gpt4 key购买 nike

我想使用nodejs作为我正在开发的项目的轻量级网络服务器。我主要是一名 PHP 程序员,因此我的做法与我习惯的不同。

在此应用程序中,我使用 Angular 来请求一些数据。我想将其格式化为“/get/some_data”。在我的 Node 端,我使用 connect 并将其静态指向我的 http 目录。

现在,当我请求某些数据时,人们似乎唯一推荐的就是查找该请求并将其传回。这比文件结构的组织性要差得多,就像我习惯的每个文件处理请求的地方一样。

var connect = require("connect");
var app = connect();

app.use(connect.static("/my_http_dir"));
app.use(function(req, res)
{
if(req.originalUrl == "foo")
{
// do something relating to foo
}
else if(req.originalUrl == "bar")
{
// do something relating to bar
}
else
{
// do nothing
}
});

connect.createServer(app).listen(80);

那么用什么来组织这个呢?我是否需要创建一个获取处理程序、放置处理程序、删除处理程序、发布处理程序等,并将"file"传递给 switch 语句?

最佳答案

express.js 内置了一个非常强大的路由引擎。您应该查看 application routing documentation并熟悉它。

要回答您的问题,您可以这样做:

app.get('/foo', function(req,res){
// foo
})

app.get('/bar', function(req,res){
// bar
})

或者,您可以使用参数值

app.get('/api/:action', function(req,res){
// action can be foo, bar, whatever...
// access action from req.params['action']
})

或者,您可以使用正则表达式,如文档所示:

app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){
var from = req.params[0];
var to = req.params[1] || 'HEAD';
res.send('commit range ' + from + '..' + to);
});

但是,是的,您应该单独声明每个动词。

关于node.js - 使用 NodeJS 作为 HTTP 服务器 - 如何避免意大利面条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21820334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com