首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
var http = require('http')
var url = require('url')
var path = require('path')
var fs = require('fs')
var dir, arg = process.argv[2] || ''// 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname
[linux运维] 1、下载最新node.js二进制源码安装包(29MB),V8.2.1更新于2017年7月20日wget -c https://nodejs.org/dist/v8.2.1//node-v8.2.1.tar.gz
wget是一个Linux下载文件的工具,centos自带。
wget -c 是断点续传下载方式,后面的URL就是提供下载文件的地址默认获取的文件地址在/root目录下,命令pwd显示当前目录.
2、安装必要的编译软件 吖米yum install gcc gcc-c++ yum = Yellow dog Updater, Modified。改良黄狗更新器,centos自带智能包管理器。 中途询问,输入y:在线下载安装 d:只下载不安装 N:不下载不安装Is this ok [y/d/N] :y
3、解压源码tar -zxvf node-v8.2.1.tar.gz当前目录/root/就会多一个node-v8.2.1的文件夹-z:透过gzip的支持进行压缩/解压缩:此时文件名最好为*.tar.gz-x:解压缩的功能-v:在压缩/解压缩的过程中,将正在处理文件名显示出来f filename:-f后面要立刻接被处理的文件名.
4、编译node源码包 1)进入到node源码包解压目录 cd node-v8.2.1指定NodeJS安装位置./configure --prefix=/usr/local/node 不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。你要卸载这个程序,要么在原来的make目录下用一次make uninstall(前提是make文件指定过uninstall),要么去上述目录里面把相关的文件一个个手工删掉。 执行安装文件,足足等了40多分钟make && make install
4、添加环境变量 > 创建并打开新文件 不存在node.sh文件 [root@localhost node-v8.1.3]# vim /etc/profile.d/node.sh > 输入node安装位置的bin目录所在位置 export PATH=$PATH:/usr/local/node/binESC 输入:wq 提示: 命令输入错了vim-bash: rt: command not found-bash: vim: command not found[解决]i. 那么如何安装 vim 呢?输入rpm -qa|grep vim 命令, 如果 vim 已经正确安装,会返回下面的三行代码:root@server1 [~]# rpm -qa|grep vimvim-enhanced-7.0.109-7.el5vim-minimal-7.0.109-7.el5vim-common-7.0.109-7.el5 如果少了其中的某一条,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 来安装:yum -y install vim-enhanced 如果上面的三条一条都没有返回, 可以直接用 yum -y install vim* 命令yum -y install vim* 使用su root source /etc/profile.d/node.sh =. /etc/profile.d/node.sh [不间断运行nodejs服务]https://yq.aliyun.com/ziliao/3411 npm install forever -g forever start app.js
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。(nodejs官网上的介绍),正如官网上介绍的那样,nodejs确实很牛!怎么个牛法?看看下面的代码就知道了。
//引入http模块
var http = require("http")
//设置主机名
var hostName = '127.0.0.1'
//设置端口
var port = 8080
//创建服务
var server = http.createServer(function(req,res){
res.setHeader('Content-Type','text/plain')
res.end("hello nodejs")
})
server.listen(port,hostName,function(){
console.log(`服务器运行在http://${hostName}:${port}`)
})
短短几行代码就把一个简单的web服务器搭建完成了,为了验证效果,我们在浏览器请求,结果如下
运行成功!
到此为止,一个web服务器就建立成功了! 没错就是这么简单,然后我们就可以写个html界面愉快的玩耍了,哈哈哈!果断的写了一个html页面来请求一下我们的web服务器。
代码简单,点击p获取数据并将服务器返回的数据展示。好了,我们运行一下demo.html文件,我擦来!居然出现了……
很明显,通过jquery请求不到数据,这是因为跨域请求的原因。我们的web服务器并不支持跨域请求,所以报错了。解决方式:在服务器的响应头文件里加上如下代码:
再次重启服务器,运行demo.html,显示结果很是令人欣喜!
通常请求服务器都会拼接参数的,最常用的就是get请求,post请求。很明显,我们现在的代码还不能支持。express框架很好的封装了nodejs的http模块,使我们用起来非常的简单。
引入express :$ cnpm install express –save
使用方式变化不大,通过express()方法开启服务,然后在通过get方法来设置匹配参数的路由,通过在回调函数的req中可以获取请求参数和地址。post请求也是类似,不过有不同的是,post请求在获取参数的时候要引入body-parser 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
运行结果:
完整的get以及post请求就是以上了。下一篇文章会结果fs文件模块介绍http是如何返回文件的,敬请期待!!
学习从来不是一个人的事情,要有个相互监督的伙伴,想要学习或交流前端问题的小伙伴可以私信“学习”小明加群获取2019web前端最新入门资料,一起学习,一起成长!
在为后端开发选择编程语言时,您的选择决定了产品将如何操作、扩展和满足用户需求。
最常见的问题之一是 Node.js 与 Python 的两难选择 。 这两个选项非常受欢迎,并且各有利弊。我们与两者合作,并在这里比较它们的优缺点,并帮助您确定哪个更适合您的项目。
定义产品种类。 它是数据量大的应用程序还是以界面为中心的程序?它的功能主要是静态的还是交互式的?在这个阶段,分析你的竞争对手、市场和最终用户的需求。
定义区域。 了解你的产品将在哪里使用非常重要:在特定地区、全国或国际上。面积越大,你就越需要仔细考虑建筑和技术解决方案。
进行市场调研。 独特且不断被要求是至关重要的。这意味着彻底的营销研究,了解你的主要竞争对手,并拥有清晰的买家角色。
分析你的资源。 了解你拥有多少具有相关经验的可用专家以及是否需要雇用外包开发人员的时刻。
明确主要绩效标准。 没有完美的后端开发工具。分析速度、安全性、交互性、响应性,并选择其中哪些具有最高优先级。
Python 是一种面向对象的动态语言,因其简单的语法和通用性而备受推崇。Python 仍然是市场上最受欢迎的语言之一。
它的主要优点之一是支持多种编程风格,使其非常适合复杂的计算项目和简单的网站。
Statista将 Python 定义为 2020 年最流行的编程语言。它被全球 29% 的开发人员使用。根据JetBrains 的研究,87% 了解 Python 的开发人员使用 Python 作为他们的主要编程语言,其中 27% 的人将 Python 用于 Web 开发,28% 用于机器学习,18% 用于数据分析。
Python 提供对 Berkeley 套接字 API 的访问权限。这是处理客户端-服务器网络的模块。Python 提供了一个简单而一致的 API,对应于这些系统调用的 C 等价物。Python 有一些类,可以更轻松地在其代码中使用这些低级套接字方法。
动态和面向对象的语法允许 Python 开发人员花更少的时间处理复杂的代码。许多软件包、附加组件和库提供了从最简单的 Web 后端到复杂的科学计算的现成选项。
这些东西使 Python 成为开发 MVP和原型的完美决策。结果: 快速进入市场,同时支持各种迭代,以及高比例的重用代码。
与其他语言和开发框架相比,Python 使用的代码行更少。这不仅与数量有关,而且还使团队工作时更容易理解代码。 Python 允许程序员用几行代码表达复杂的想法。
Python 有一个特殊的好处,那就是经常使用英语术语而不是数学表达式。该代码易于阅读和理解。
Python 应对多种开发挑战。尽管生态系统并不新鲜,但不断添加新软件包和附加组件使其保持相关性。目前,它是最适合人工智能、计算机视觉、机器学习、数据科学、统计学和其他领域的语言之一。
Python 已经存在了一段时间,所以它围绕自己建立了一个大社区。开发人员使用开源资源和教程,这使得专业成长和经验交流更容易。
社区起初可能看起来并不重要,但它让开发人员参与并更新。
如果你优先考虑高速,Python 将不是最佳选择。Python 可以轻松处理密集型操作,但与其他语言相比,它需要更多时间。如果你需要运行多个请求,Node.js 的异步输入和输出会更适合你。
移动应用程序的低性能是一个主要问题。如果后端在设计上很慢,那么用户体验就会受到影响。
使 Python 代码适应移动设备的另一个问题是它不能很好地与原生组件一起使用。如果你将不太兼容的代码库与低性能结合起来,你将遇到性能问题。
Node.js 是一个基于 JavaScript 编程语言的后端开发运行时环境。
Node.js 使用异步的、事件驱动的输入输出。它表明运行时环境可以同时处理多个请求,而不必等待前一个请求完成。
根据Statista的说法,Node.js 是最常用的编程框架。大约 53% 的开发人员在他们的项目中使用 Node.js。Twitter、Aliexpress、Coursera 和许多其他使用 Node.js 创建的巨头。Netflix 和 Paypal 选择 Node.js 来支持他们的微服务。它使他们能够将启动时间从 40 分钟缩短到 1 分钟。
Node.js 是一种允许您创建 WebSocket (一种允许实时双向客户端-服务器网络的协议)的编程语言。在在线应用程序中,WebSockets 是 HTTP 通信的替代方案。一旦连接形成,通道就会保持打开状态,从而实现高速连接,而客户端-服务器网络的延迟和开销很小。聊天、在线多人 游戏 、Google 文档和其他常见用例只是其中的几个例子。
Node.js 的主要优势是处理复杂的并发进程。大型公司之所以选择它来为其基础架构提供动力,是因为它具有快速处理大型工作负载的成熟能力。
选择 Node.js 的主要原因是它的快速性能。它在单个 Node.js 服务器上并行处理大量请求。
Node.js 使用 Google Chrome V8 引擎作为运行时环境来执行 JavaScript。该引擎使用即时编译来处理 JavaScript 代码并快速提供即时输出。它使 Node.js 成为交互式开发的首选。
多亏了这一点,您可以获得出色的用户体验,使 Node.js 成为实时应用程序、信使、 游戏 应用程序等的首选。
全栈 Web 开发是一种趋势——Medium、Airbnb、Paypal、Netflix 等企业转而使用 Node.js,在前端和后端开发中都使用 JavaScript。它保证:
在 Node.js 服务器上的整个开发过程中重用 JavaScript 可以加快交付速度并简化通信。当所有团队成员都能理解代码时,这是一个巨大的优势。
Node.js 服务器有很多 NPM 包。Netflix 和 Paypal 同时迁移到 Node.js 和微服务,取得了惊人的效果。他们摆脱了代码重复,组织了架构,引入了额外的功能,并改善了用户体验。
Node.js 不能很好地处理复杂的操作。它的优点是可以快速处理多个简单的请求,但是任何复杂的请求都会导致延迟。
假设您的应用程序必须运行复杂的操作。Node.js 不是一个好的选择。有一些方法可以让 Node.js 更好地处理复杂的任务,但默认功能并不完善。
该编程语言基于 NPM 模块构建,它允许您扩展内置功能并创建几乎任何东西。然而,一个特定的模块可以独立运行,但与系统的其余部分不兼容。
一些 NPM 模块可能不兼容,需要重新设置。如果你运行大型基础架构,错误可能会导致崩溃。
Node.js 和 Python 堆栈是出色的后端,为开发人员提供了令人印象深刻的可能性。Python 擅长执行复杂的操作和支持创新,但它在速度上有所损失。Node.js 性能出众,但不擅长处理复杂的操作。但决定取决于项目类型。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)