我计划将一个小的PHP代码库(少于1000行)转换为Node.js。这是一个包含大约5万行JS的web应用程序,所以我想我应该把它移到Node.js。(另外,PHP烂透了。)有一些静态文件(CSS, HTML等),我将与node-static
包一起提供。我的问题是我的PHP文件不是静态的。
例如,我有一个在GET变量上运行的搜索页面。我将?keyword=blah
附加到URL的末尾,PHP脚本搜索DB并为浏览器输出HTML。我如何在Node.js中复制这种行为?(换句话说,我如何创建一个服务器来监听localhost/search.html
并接受URL中的GET变量?)
我知道我可以改变搜索的方式来实现这一点,但我真的想弄清楚如何复制这种行为,因为我有几个脚本的行为相同的方式。
编辑:至于数据库,我实际上使用的是OrientDB。但我不直接连接到它,而是使用一组Java服务,向其发送JSON请求。因此,实际上,我所需要做的就是发布一个JSON请求(同步)并输出HTML。我是这样做的:
创建一个新的ExpressJS应用
"express myapp"
安装所有依赖项
"cd myapp && npm install".
在app.js中,确保在"var app"
之前需要"url"包var url = require('url');
为"app.js"添加一个新路由,以便它查找任何对"search.html"的GET请求
app.get('/search.html', function(req, res) {
// Process the request for the GET variables
var url_parts = url.parse(req.url, true);
var query = url_parts.query; // These are all your GET variables
var search_keyword = query.keyword;
if(search_keyword) {
// The keyword indeed exists
console.log(search_keyword);
}
res.end();
});
如果你运行应用程序,转到"search.html?"关键词=haha",你的控制台将输出"haha"。在此之后,您可以使用关键字