Php 难点和一些更基本的问题
在互联网上尝试探索Nodejs及其基本教程几周后,我只不过是一个Nodejs用户。当我开始进入真正的self program server时,我遇到了几个问题,我尝试在Google上搜索,但似乎没有任何资源是有用的,所以,是的,我是来问的。请帮助我理解这些并成为节点开发人员: 1) 根据我的经验,只有一个服务器文件Php 难点和一些更基本的问题,php,javascript,node.js,Php,Javascript,Node.js,在互联网上尝试探索Nodejs及其基本教程几周后,我只不过是一个Nodejs用户。当我开始进入真正的self program server时,我遇到了几个问题,我尝试在Google上搜索,但似乎没有任何资源是有用的,所以,是的,我是来问的。请帮助我理解这些并成为节点开发人员: 1) 根据我的经验,只有一个服务器文件server.js作为服务器通过nodejs运行。作为一名PHP开发人员开始,我对它的工作原理并不熟悉,比如,如果你有PHP,process.PHP,rank.PHP,无论什么.PHP
server.js
作为服务器通过nodejs运行。作为一名PHP开发人员开始,我对它的工作原理并不熟悉,比如,如果你有PHP,process.PHP,rank.PHP,无论什么.PHP处理不同的任务,我只需要将这些数据发送到相应的服务器文件,但在nodejs的情况下,我只能有1个server.js文件,那么,我如何处理来自单个服务器文件的不同任务?是否可以创建多个服务器文件?(我真的不想为了执行不同的任务而将一个包含许多参数的文件弄乱,并使文件的大小显著变大!)
2) 比方说,第一个问题解决了,现在又引出了另一个问题。我一直在尝试一些关于数据库管理的教程,比如mysql或mail(需要输入电子邮件密码),。。。但正如我所注意到的,我在javascript文件中输入了所需的密码?!?!?我尝试了localhost/server.js
,文件是公开的。。。这是我真正需要担心的事情吗
3) 现在,随着我进一步熟悉nodejsphp函数,如邮件、加密。。。我需要为不同的任务安装不同的模块,我想象有一天如果我在线托管它,我必须重新开始安装它们?我只是想知道为什么没有像PHP中那样的标准函数。当然,这是一个个人问题
4) 我想请你帮我抛出几行代码(我只需要它的非常基本)如何发送请求,接收数据,就像下面的代码一样,但在nodejs中。这将有助于我从抽象上理解nodejs是如何工作的
[index.html]
$.ajax({
url: "process.php", //Which address should I send to if I use nodejs
type: "POST",
data: "p=test"
}).done(function(data) {
console.log(data);
});
[process.php]
die($_POST["p"]);
--致以最良好的问候和赞赏。提姆
mod_rewrite()
规则将所有请求发送到单个控制器,然后该控制器根据请求URL将这些请求路由到适当的脚本。它是如何与php一起工作的。当您使用node.js和默认的server/hello-world示例时,不提供此路由,这意味着您需要自己构建它或使用框架(如express)来处理它。这与使用上述框架之一在php中构建web应用程序没有太大区别package.json
文件来管理所有依赖项。然后,部署应该像在每个环境中运行npm install
一样简单mod_rewrite()
规则将所有请求发送到单个控制器,然后该控制器根据请求URL将这些请求路由到适当的脚本。它是如何与php一起工作的。当您使用node.js和默认的server/hello-world示例时,不提供此路由,这意味着您需要自己构建它或使用框架(如express)来处理它。这与使用上述框架之一在php中构建web应用程序没有太大区别package.json
文件来管理所有依赖项。然后,部署应该像在每个环境中运行npm install
一样简单var sendResponse = function(str, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(str + '\n');
}
var http = require('http');
http.createServer(function (req, res) {
var url = req.url;
switch(url) {
case "/test": sendResponse("test url", res); break;
case "/about": sendResponse("about url", res); break;
default: sendResponse("default url", res);
}
sendResponse("test", res);
}).listen(1337, '127.0.0.1');
console.log('Server running at 127.0.0.1:1337');
在该示例中,解析给定的url并执行javascript函数。您应该将页面组织成模块,并相应地要求它们。因此,如果您运行上面的代码,您可以键入类似127.0.0.1:1337/about的url
2) 不,该文件不会被删除
var serverHTML = function(res) {
res.writeHead(200, {'Content-Type': 'text/html'});
var str = '\
<html>\
<head>\
<title>Page</title>\
</head>\
<body>\
<h1>Page</h1>\
</body>\
</html>\
';
res.end(str + '\n');
}
var serveAjaxData = function(res) {
res.writeHead(200, {'Content-Type': 'application/json'});
res.end('{"data":"..."}\n');
}
var http = require('http');
http.createServer(function (req, res) {
switch(req.url) {
case "/process": serveAjaxData(res); break;
default: serverHTML(res);
}
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');