Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有任何web框架的Raw Node.js_Javascript_Node.js - Fatal编程技术网

Javascript 没有任何web框架的Raw Node.js

Javascript 没有任何web框架的Raw Node.js,javascript,node.js,Javascript,Node.js,我正在努力学习node,我看到了很多资料(正如著名的SO问题中所建议的),问题是我看到的所有书籍,或者教程可以使用像express这样的web框架,也可以仅限于解释节点是什么,只需解释如何创建一个非常基本的http服务器来侦听某个端口上的请求。 所以我真的很想知道是否有人使用节点w/o web框架?如果是的话,他们一定是在什么地方学的,那么你能建议我在哪里学吗? 我知道这是非常低级的,但我不介意,我已经熟悉了如何用C创建服务器。 我真的很想了解我们是如何使用node(通常在文件夹中组织)提供静态

我正在努力学习node,我看到了很多资料(正如著名的SO问题中所建议的),问题是我看到的所有书籍,或者教程可以使用像express这样的web框架,也可以仅限于解释节点是什么,只需解释如何创建一个非常基本的http服务器来侦听某个端口上的请求。
所以我真的很想知道是否有人使用节点w/o web框架?如果是的话,他们一定是在什么地方学的,那么你能建议我在哪里学吗?
我知道这是非常低级的,但我不介意,我已经熟悉了如何用C创建服务器。
我真的很想了解我们是如何使用node(通常在文件夹中组织)提供静态内容的,以及我们是如何将逻辑引入html的(我查阅了所有这些内容,但只找到了如何使用Express实现的结果,在Express中,逻辑是由类似的东西引入的,但这可以在纯node中实现吗?。

与我类似的问题,在这里已经被问到,并没有真正的答案。最好的答案只是建议阅读nodejs官方文档,就像这样说:
你有一本包含数百万拉丁单词的字典,祝你学习好运。

那么,您能否推荐一些有良好文档记录、功能强大的书籍/教程,其中展示了如何使用原始节点创建真实世界的网站?

如果没有,我想我将不得不坚持使用php+Apache,并尝试优化它们以实现扩展。

您所要求的似乎是两件不同的事情,您希望使用原始节点,但同时知道人们在现实世界中如何使用它。几乎每个人都至少使用Express(或者Koa,如果你在出血边缘)作为他们的Web框架。它们为创建健壮的web服务器提供了基础。然后,对于您的实际前端,您将使用AngularJS或ReactJS,您不会进行任何渲染服务器端模板渲染(例如,没有代码块)。如果您选择使用React,您将需要其他库(如BaconJS)来辅助粘合,因为React只是视图层,而Angular是一个包罗万象的MVC框架


最好的学习方法之一是查看平均堆栈生成器。使用生成器制作一个应用程序,并读取其源代码以查看其结构,然后开始对其进行黑客攻击以实现您的目的。

Node.js本身就是一个Javascript执行引擎(基于V8),在许多不同平台上运行,并附带一个标准库。它在某种程度上类似于任何其他具有标准库的解释语言(如Python或PHP)。将plain node.js单独描述为“web平台”是不准确的。它有一些核心工具,人们可以利用它来构建一个web平台,但它也可以用于与web平台无关的各种其他类型的用途。例如,我用它构建了一些命令行构建工具,用于执行各种形式的文本处理(这种用法不需要任何类型的网络)

所以我猜“raw”节点只是意味着解决您想要解决的任何问题,而不必构建第三方库(node.js附带的标准库之外)。就我个人而言,我不知道你为什么真的想这么做。node.js开发的一个巨大优势是整个NPM生态系统,其中有数千个预构建的免费开源模块,可以解决数千个问题。有些是一些函数,但仍然有用,而另一些则是解决大量问题的完整API。NPM和这个生态系统的美妙之处在于,只需一个简单的命令,您就可以将这些模块中的任何一个添加到您的项目中,只需几行代码,您就可以在项目中使用它。我认为避免这种优势是愚蠢的。

因此,学习raw node.js意味着学习Javascript,学习node.js开发中常用的工具(调试器、NPM、控制台等),以及学习node.js附带的标准库。很少有人愿意坐下来真正学习标准库中的每个函数。通常人们所做的是仔细查看标准库中可用的所有模块,逐页浏览每个模块,了解其中包含的内容,然后找到想要构建的内容并开始构建。当您被迫从文档、Google搜索或研究您找到的其他node.js代码中查找内容并了解它们是如何工作的时,您将了解标准库的各个部分是如何工作的以及它是如何工作的。如果您正在进行I/O(文件、网络等),您将很快在标准库中遇到大量异步API,您通常希望或需要精通异步操作(这实际上只是学习异步Javascript),但在node.js项目中可能很重要

如果你真的想自己“研究”标准库,那么亚马逊和谷歌都有很长的资源列表,你可以翻阅,看看哪些资源似乎以你想要的方式处理事情。在StackOverflow上,要求我们为您找到这样一个资源被认为是“离题的”,所以我将让您去查阅这些列表,并决定什么看起来有趣。我自己也知道客户端Javascript,只是通过阅读一些web资源,然后处理自己的项目,就学会了node.js。最后,我构建了一个node.js系统,它运行在Raspberry Pi上,位于我的阁楼监控温度探头中,根据温差切换阁楼风扇,并提供一个web界面,用于控制、配置和报告正在发生的一切。它一半是网络应用,一半是独立的温度控制器

不幸的是,node.js标准库的文档并没有丰富的描述性(我在这里很客气)。这在技术上是准确的,但通常不能回答ma