gpt4 book ai didi

web-applications - Node.js 应用程序可以有静态 URL 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:53 25 4
gpt4 key购买 nike

所以我经常听到有关 Node.js 和 javascript 网络应用程序的一般信息。我所知道的示例更像是 native 应用程序,而不是 Web 应用程序,因为静态 URL 不可用。他们似乎不是可以链接到的专用页面。

我的问题是...如果静态页面 (URL) 的存在对于该应用程序必不可少(例如;想想人们需要如何链接到推文或ebay 列表或 wordpress 帖子)。

谢谢!

埃迪

最佳答案

这个答案是针对静态页面和文件的,因为静态 url 并不是 node.js 的真正问题,它在 express js guide 中有介绍。 .

如果您要构建 Web 应用程序,则只使用 node.js 而不使用任何框架是一个非常糟糕的主意。然而,有很多好的 node.js 网络框架可以让生活变得更轻松。如果你有 NPM安装它们也很容易。

我只有 express.js 的经验但如果您之前有任何使用 MVC 类型的网络框架的经验,那么创建网络应用程序真的很容易。

根据我的经验,确实没有办法为 node.js 中内置的静态页面提供服务。然而,构建一个可以为静态页面提供服务的 Controller 非常简单。

这是一个使用 express.js 的例子。

server.js

...    
app.get('/content/*', controllers.content.getfile);
...

这将创建一个路由,捕获每个进入 content 目录的 url,并将其定向到内容 Controller 中的操作 getfile,即 www.yourdomain.com/content/style.css

controllers.js

...
exports.content = {
getfile : function(req,res){
var uri = url.parse(req.url).pathname;
var filename = path.join(process.cwd(), uri);
path.exists(filename, function(exists){
if(!exists){
res.writeHead(404, {"Content-Type" : "text/plain"});
res.write("Content not found");
res.end();
return;
}

fs.readFile(filename, "binary", function(err, file){
res.writeHead(200, {'Content-Type' : mime.lookup(filename) });
res.write(file, "binary");
res.end();
});

});
}
}
...

内容 Controller 中的此操作 getfile 在内容目录中查找 URL 中指定的文件并将其提供给客户端。它需要可以通过 NPM 获得的 mime 库。

这允许使用/content/文件夹中的静态文件。如果您愿意,可以让路由捕获每个未捕获的 URL 并从路由向上查找静态文件。但是,您必须设置某种过滤器,这样您就不能只访问 server.js 文件。

关于web-applications - Node.js 应用程序可以有静态 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259716/

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