linux安装nodejs一键脚本 linux安装nginx详细教程

什么是NodeJSJS是一种脚本语言,所有的脚本语言都需要一个解析器来运行。对于用HTML页面编写的JS,浏览器起到了解析器的作用。对于需要独立运行的JS,NodeJS是一个解析器。每个解析器都是一个运行时环境,不仅允许JS定义各种数据结构,进行各种计算,还允许JS利用运行时环境提...

什么是NodeJS

JS是一种脚本语言,所有的脚本语言都需要一个解析器来运行。对于用HTML页面编写的JS,浏览器起到了解析器的作用。对于需要独立运行的JS,NodeJS是一个解析器。

每个解析器都是一个运行时环境,不仅允许JS定义各种数据结构,进行各种计算,还允许JS利用运行时环境提供的内置对象和方法做一些事情。比如JS在浏览器中运行的目的是操作DOM,浏览器提供了文档等内置对象。而NodeJS中运行的JS是用来操作磁盘文件或者构建http服务器的,NodeJS相应的提供了fs、HTTP等内置对象。

有什么用

虽然有一部分同学听说可以直接运行JS文件就觉得很酷,但是大部分同学首先关心的是新事物的有用性和价值。

NodeJS的作者说他创建NodeJS的目的是为了实现一个高性能的Web服务器。他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言来实现他的想法。这种编程语言不能自带IO功能,需要很好的支持事件机制。JS没有自带IO功能,在浏览器中自然是用来处理DOM事件的,拥有庞大的程序员群体,所以成为了自然而然的选择。

如他所愿,NodeJS在服务器端开始活跃,大量基于NodeJS的Web服务出现。另一方面,NodeJS使前端成为神器,最终使其能力覆盖跳出浏览器窗口。更多的前端工具如雨后春笋般出现。

所以对于前端来说,虽然不是每个人都要用NodeJS写服务器程序,但是可以像用命令交互方式调试JS代码片段一样简单,也可以像写工具一样复杂,提高工作效率。

NodeJS生态圈欣欣向荣。

如何安装

安装

NodeJS提供了一些安装程序,可以在nodejs.org这里下载并安装。

在Windows下,选择安装文件。与系统版本匹配的msi后缀。在Mac OS X下,选择安装文件。pkg后缀。

编译并安装

Linux系统下没有现成的安装程序可用。虽然有些发行版可以通过apt-get的方式安装,但是可能无法安装到最新版本。所以Linux系统下安装NodeJS一般采用以下编译方法。

确保系统下g++版本在4.6以上,python版本在2.6以上。从nodejs.org下载tar.gz后缀的NodeJS最新版源代码包并解压到某个位置。进入解压到的目录,使用以下命令编译和安装。 $ ./configure $ ***ke $ sudo ***ke install

如何运行

打开终端和类型节点,进入命令交互模式。您可以输入一个代码语句,然后立即执行并显示结果,例如:

$ node> console.log('Hello World!');Hello World!

如果你想运行一大段代码,你可以在运行之前写一个JS文件。例如,有以下hello.js

function hello() { console.log('Hello World!');}hello();

写完后在终端下键入node hello.js运行,结果如下:

$ node hello.jsHello World!

权限问题

在Linux系统下,使用NodeJS**端口80或443提供HTTP(S)服务需要root权限。有两种方法可以做到这一点。

一种方法是用sudo命令运行NodeJS。例如,以下命令运行的server.js拥有使用端口80和443的权限。通常,建议使用这种方法,以确保只有需要的JS脚本才被提供root权限。

$ sudo node server.js

另一种方法是使用chmod +s命令使NodeJS总是以root权限运行,如下所示。因为这种方式允许任何JS脚本都有root权限,安全性不是很高,所以在非常需要考虑安全性的系统中不推荐使用。

$ sudo chown root /usr/local/bin/node$ sudo chmod +s /usr/local/bin/node

模块

当编写稍微大一点的程序时,代码通常是模块化的。在NodeJS中,代码一般被合理拆分成不同的JS文件,每个文件就是一个模块,文件路径就是模块名。

编写每个模块时,有三个预定义的变量:require、exports和module。

要求

require函数用于加载和使用当前模块中的其他模块,传入一个模块名并返回一个模块导出对象。模块名可以是相对路径(以。/)或绝对路径(以/或c:开头)。此外。模块名中的js扩展名可以省略。下面是一个例子。

var foo1 = require('./foo');var foo2 = require('./foo.js');var foo3 = require('/home/user/foo');var foo4 = require('/home/user/foo.js');// foo1至foo4中保存的是同一个模块的导出对象。

此外,您可以通过以下方式加载和使用JSON文件。

var data = require('./data.json');

导出

Exports对象是当前模块的导出对象,用于导出模块的公共方法和属性。当其他模块通过require函数使用当前模块时,它们会获得当前模块的exports对象。下面的示例中导出了一个公共方法。

exports.hello = function () { console.log('Hello World!');};

模块

可以通过模块对象访问当前模块的一些相关信息,但最常见的目的是替换当前模块的导出对象。例如,默认情况下,模块导出对象是一个普通对象。如果想改成函数,可以用以下方法。

module.exports = function () { console.log('Hello World!');};

在上面的代码中,模块的默认导出对象被替换为一个函数。

模块初始化

模块中的JS代码只在第一次使用该模块时执行一次,在执行过程中初始化该模块的导出对象。之后,缓存的导出对象将被重用。

主模块

通过命令行参数传递给NodeJS来启动程序的模块称为主模块。主模块负责调度组成整个程序的其他模块来完成它们的工作。例如,当程序由下面的命令启动时,***in.js是主模块。

$ node ***in.js

完整示例

例如,有以下目录。

- /home/user/hello/ - util/ counter.js ***in.js

其中counter.js内容如下:

var i = 0;function count() { return ++i;}exports.count = count;

私有变量I在模块内部定义,公共方法计数在导出对象中导出。

主模块***in.js如下:

var counter1 = require('./util/counter');var counter2 = require('./util/counter');console.log(counter1.count());console.log(counter2.count());console.log(counter2.count());

运行该程序的结果如下:

$ node ***in.js123

如您所见,counter.js没有初始化两次,因为它需要两次。

二进制模块

一般我们用JS写模块,但是NodeJS也支持用C/C++写二进制模块。编译后的二进制模块的使用方式与JS模块相同,只是文件扩展名是。节点。虽然二进制模块可以使用操作系统提供的所有功能,潜力无限,但是前端学生编写和跨平台使用难度太大,不在本教程讨论范围内。

总结

本章介绍了NodeJS的基本概念和用法,并总结了以下几个知识点:

NodeJS是一个JS脚本解析器,任何操作系统下安装NodeJS本质上做的事情都是把NodeJS执行程序***到一个目录,然后保证这个目录在系统PATH环境变量下,以便终端下可以使用node命令。终端下直接输入node命令可进入命令交互模式,很适合用来测试一些JS代码片段,比如正则表达式。NodeJS使用CMD模块系统,主模块作为程序入口点,所有模块在执行过程中只初始化一次。除非JS模块不能满足需求,否则不要轻易使用二进制模块,否则你的用户会叫苦连天。

本文来自秦楚殇投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/608011.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-26
下一篇 06-26

相关推荐

  • 萤石云监控怎么样 手机萤石云监控安装步骤

    海康威视绝大多数摄像机和录像机支持***萤石云APP远程监控。对于nvr产品,添加到萤石云账户,需要在录像机上做如下配置:海康威视的大部分摄像机和录像机都支持定位器萤石云APP远程监控。对于要添加到萤石云账户的nvr产品,需要在录像机上进行以下配置:录像机的萤石云设置VCR

    2023-07-29 03:58:01
    956 0
  • ps中文版免费安装教程 手机ps专业的软件推荐

    学平面设计的同学,Adobe2020版相信很多朋友都提前听说过。前几天他们看到他们的热情后马上找到了PS2020版。可惜前几天发的是简化版,朋友告诉小众在使用过程中出现了一些问题,经常打不开软件。这次他们带来了PS 2020完整版,非常稳定!【PS2020+PR2020安装包领取方式见文末

    2023-07-29 02:22:01
    877 0
  • win7offic2010老是安装出错解决方法

    Office2007或office2010,安装程序集组件时出现错误1935“错误1935。此错误通常是Microsoft NET Framework组件的问题。工具原材料net framework方法步骤安装带有1935错误的office,然后安装程序。解决office无法安装的方法如下:1。首先运行输入regedit,然后按enter 2找到HKE

    2023-07-28 22:04:01
    215 0
  • 驱动精灵怎么安装驱动(驱动精灵怎么安装蓝牙驱动)

    安装打印机驱动程序有许多方法。一开始都是安装打印机驱动的可执行程序,就像正常的软件安装一样。现在,打印机驱动程序的安装非常简单。只需要下载第三方驱动安装工具,比如“驱动向导”,就可以实现一键安装。接下来,我将说明安装方法。方法一打开驱动向导软件主界面,选择

    2023-07-28 14:52:01
    307 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信