所以,我对NodeJS和任何一般的编程都很陌生,而且我不确定我是否正确地解决了这个问题。自从我9岁或10岁(目前为13岁)以来,我一直在练习这样的事情。所以在我深入研究NodeJS之前,我想确保我正确使用它。
所以,在使用PHP一段时间之后。你可以简单地回声"文档中用于从服务器返回数据的内容,例如IP地址。
<?php
echo $_SERVER["REMOTE_ADDR"];
?>
这将有效地回应用户的IP,无论PHP位于文档中的哪个位置 - 由Apache的模块解析(对吗?)
这是什么意思?有没有办法在文档中重新创建NodeJS语法,然后由NodeJS HTTP服务器解析以获取任何NodeJS,让我们说<nodejs>script</nodejs>
。
因此,用更短,更易理解的术语来说。 在节目显示之前将NodeJS从文档中取出是否技术上是安全的 - 评估Nodejs脚本,然后删除它并显示它。
虽然这听起来有点粗略。所以我现在正在使用另一种方法。但我不确定这在技术上是否安全。
现在,在文档中,我会有类似<p>Your IP is [*IP*]</p>
的内容,我使用NodeJS的文件系统模块来执行以下操作:
app.get("/", function(req, res){
res.send(fs.readFileSync(__dirname + "index.html").replace(/\[\*IP\*\]/g, req.connection.remoteAddress));
});
虽然,这对我来说似乎有点不对劲。由于我在Web开发的安全性方面没有很多经验,所以我希望能够对这是如何安全或不安全有所了解。 我该如何做到这一点?
感谢您花时间阅读并帮助我提高我对此主题的了解!
答案 0 :(得分:1)
我不认为这是一个安全问题或类似问题,而是关于Node.js与PHP相比如何运作的问题。
基本上,正如您所写,PHP基于文件。所以你创建了一个扩展名为.php的文本文件,把你的HTML标记和一些逻辑(比如打印ip地址)放在里面就可以了。其余部分由Web服务器完成,主要是Apache,它通过&#34; PHP引擎&#34;将每个请求发送到.php文件。它会解释您的代码并将结果呈现给客户端(在您的情况下是您的浏览器)。
Node.js无法正常工作。最常见的(不是唯一的)方法是使用&#34;中间件&#34;而不是寻找随后被解释和返回的文件。正在处理请求。
首先它会关注&#34;端点&#34;对于每个请求。从广义上讲,您可以为每条路线注册一个功能,就像您在路由的示例代码中所做的那样&#34; /&#34; (也可能是(&#34; / what-is-my-ip&#34;)。
该功能是您的&#34;控制器动作&#34;它可以执行一些业务逻辑,如获取IP地址。
完成后,它会将结果传递给视图引擎,或者只是通过该引擎返回一个简单的视图。
视图基本上就是你的.php,但它不包含任何逻辑,这是PHP的主要区别。
它主要在Model View Controller模式之后工作。
一些视图引擎: