Nodejs学习笔记(1)——安装nodejs

Niubility的Nodejs   

    关于大名鼎鼎的Nodejs是什么就不用再介绍了,他的牛逼之处数都数不完——让javascript称霸全宇宙、将一个只用于前端的编程语言同时可以制霸前后端、让致力于前端开发的小哥又多了一项事业新增了一门手艺、亮瞎人的全异步事件驱动型架构(event-driven、non-blocking、scalability)。总的来说就是,学好Nodejs必须能够赚大钱迎娶白富美。

    本人一直垂涎与Nodejs的鼎鼎大名,但是由于工作繁忙,一直没时间深入亵玩。最近因为一些机缘,又要着手一些前端开发的工作才觅得一次全面接触的良机。

    看到这里你肯定要说,又是一个要把Nodejs吹上天的文章!NoNo,本文会一步一步的说明我是怎么学会和用上nodejs的,然后结合其我所了解的语言告诉各位我所了解的Nodejs坑和优势。

学习基础

    先说说本人开始学习使用的基础。早期在某外企开发室内3D设计软件,那段时间用已经成为古董的MFC做各种windows事件驱动开发。

    之后就一直在做Java生态的东西、反正就是SSH啦、MVC啦、Dao啦、Entity啦、JNDI啦、JDBC啦等等,相信每个Javaer都懂的。早些年做Java时,前端部分基本就是玩转Jsp,页面清一色的用Jsp动态生成,然后丢给浏览器。现在所属团队几乎已经放弃这种方式,都是用spring-boot等弄前后端分离了。

    随后有幸接到一个自己可以全权负责的全新的项目,于是带着2个人开始尝试抛弃JSP,引入了大量的ajax异步请求的客户端组装数据。那时候这样做其实蛮痛苦的,新项目根本没有真正意义的前端开发人员(都玩JSP呢),所以自己不得不去研究前端的各种前端技术。在随后的许多时光中,深入且大量的学习了前端开发的所有东西,从一穷二白只会用div画画静态页面,到后面自己封装列表、消息通知等组件,通杀jquery、angularjs,了解各种脚手架。所以学习Nodejs开发,我基本上是没有语言障碍的,只是需要跟上它的思路。

安装Nodejs

    要用一样东西之前,当然是要先安装环境。Nodejs的安装网上一搜一大把,这里就简单记录一下流程,方面以后查阅。因为本人用一台windows(windows10)办公、用一台linux(ubuntu16.04)开发,所以2个操作系统都安装了Nodejs,像OSX这样高大上的玩意,暂时没机器去弄(穷)。

    windows

  1. 先去官网(https://nodejs.org或https://nodejs.org/en/download/)下载一个安装包,我下的是长期稳定版。建议下载.msi。
  2. 然后就是安装了,这没什么好说的。无非就是设定一下安装目录,然后一通Next。
  3. 安装好之后检查下环境变量,看看path下添加入了Nodejs的运行路径。cmd中输入path可以看到添加了nodejs的安装目录。然后输入node --version可以看到当前的Nodejs版本号。如下图:    
  1. Nodejs自带npm,npm和其他未来要使用的组件都存放在“X:\yourpath\nodejs\node_modules”里。所以需要在windows环境变量重增加一个NODE_PATH=X:\yourpath\nodejs\node_modules的参数,保证未来新增的一些模块工具可以正常使用。右键“我的电脑”->高级系统设置->环境变量->然后新建以上参数。
  2. 再然后就是最后一步了,设置node_cache(用于npm存放一些临时文件)和node_global(全局工具文件夹),当然这里也可以不设置,他会自动放在当前用户的文件夹下,但是有强迫症的我必须要设置。在cmd中输入一下命令:
npm config set prefix 'X:\yourpath\nodejs\node-global'

npm config set cache 'X:\yourpath\nodejs\node_cache'

    linux

    linux安装和windows安装Nodejs差不多,都是下载包、解压、开用。

  1. 先去官网下载一个linux版本的安装包(下首页的那个就行)。下载以后发现是 xz后缀,先得用xz命令解压成tar,再用tar完成解压。
  2. 添加Nodejs运行环境:直接把node的运行目录添加到&PATH里。在profile中添加Node的运行环境: #node export NODE_HOME=/yourpath/node-v4.5.0-linux-x64 export PATH=$NODE_HOME/bin:$PATH 然后再任意位置测试了一下运行node命令都可以正常使用。
  3. 然后我们需要添加node_modules到PATH中,保证npm可以使用: #npm export NODE_PATH=$NODE_HOME/node_modules 配置完之后,就可以使用npm命令了。(修改之后切记注销用户)

    完成以上步奏之后,就可以用node和npm命令干你相干的事了。安装之前按看到很多教程说是要安装python2.2到2.7的版本。但是我解压完nodejs包后在bin下运行了node -v命令居然可以跑,我就没去管python的事,应该是我用的是打包版的原因。

Apt安装Nodejs

1.设定Nodejs安装源:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

2.安装Nodejs

sudo apt-get install -y nodejs

验证安装结果

    安装完成之后,我在windows和linux都测试了一下。

    测试nodejs:输入node打开REPL,然后使用log打印数据:

$ node
> console.log("hello nodejs!");
hello nodejs!
undefined

    然后用npm测试安装grunt-cli:

$ npm install -g grunt-cli
/yourpath/node-v4.5.0-linux-x64/node_global/bin/grunt -> /yourpath/node-v4.5.0-linux-x64/node_global/lib/node_modules/grunt-cli/bin/grunt
grunt-cli@1.2.0 /me/soft/node/node-v4.5.0-linux-x64/node_global/lib/node_modules/grunt-cli
├── grunt-known-options@1.1.0
├── resolve@1.1.7
├── nopt@3.0.6 (abbrev@1.0.9)
└── findup-sync@0.3.0 (glob@5.0.15)

    运行一个Nodejs程序

    安装好之后,node的命令行和npm的命令行就都可以使用了,随后当然就是要跑跑Nodejs了。像下面这样创建一个创建一个example.js文件,随便放在某个文件:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) -> {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World Nodejs\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

    然后在当前文件下打开一个cmd运行以下命令:

node example.js

    可以看到输出:

$node example.js

Server running at http://127.0.0.1:3000

原文地址:https://www.chkui.com/article/react/react_establish_development_environment

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

内存泄露从入门到精通三部曲之排查方法篇

1 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。 这种方式可以发现最基本...

40614
来自专栏黑白安全

DLL注入新姿势:反射式DLL注入研究

在分析koadic渗透利器时,发现它有一个注入模块,其DLL注入实现方式和一般的注入方式不一样。搜索了一下发现是由HarmanySecurity的Stephen...

2863
来自专栏Golang语言社区

进程、线程、轻量级进程、协程和go中的Goroutine

进程、线程、轻量级进程、协程和go中的Goroutine 进程、线程、轻量级进程、协程和go中的Goroutine 那些事儿电话面试被问到go的协程,曾经的军伟...

4506
来自专栏cloudskyme

jbpm5.1介绍(2)

快速开始  首先下载jBPM,http://sourceforge.net/projects/jbpm/files/ 可以有选择性的下载: bin:jBPM的二...

3726
来自专栏烂笔头

在Python应用中使用MongoDB

目录[-] Python是开发社区中用于许多不同类型应用的强大编程语言。很多人都知道它是可以处理几乎任何任务的灵活语言。因此,在Python应用中需要一个...

4234
来自专栏北京马哥教育

黑客用Python:检测并绕过Web应用程序防火墙

Web应用防火墙通常会被部署在Web客户端与Web服务器之间,以过滤来自服务器的恶意流量。而作为一名渗透测试人员,想要更好的突破目标系统,就必须要了解目标系统的...

1431
来自专栏Android开发与分享

Android开发架构规范前言命名规范编程规范代码提交规范架构规范参考文章

3868
来自专栏黑泽君的专栏

day45_Webservice学习笔记_01

Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。

1231
来自专栏FreeBuf

Flash XSS检测脚本的简单实现

前言 这里主要是讲如何快速扫描到有问题的flash文件,用于批量,有时候很笨的方法也会有奇效,下面记录一下在实现过程中的一些思路和遇到的一些坑。 ? 第三方插件...

2795
来自专栏大内老A

《WCF技术剖析》博文系列汇总[持续更新中]

近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析(卷1)》的写作,一直无暇管理自己的Blog。在《WCF技术剖析(卷1)》写作期间,对WCF又有了新的感...

1748

扫码关注云+社区