Node.js 新手入门

Node.js是运行在服务端的JavaScript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。简单地说,Node.js 是运行在服务端的 JavaScript, 是基于 Chrome JavaScript V8 引擎建立的平台,换句话说,Node.js是一个让JavaScript运行在服务器端的开发平台。除了服务器编程,Node.js 还被广泛应用于客户端编程,如桌面软件(Electron 框架),手机软件(React-Native 框架,Apache Cordova 框架)等,当然还有现在特别火的“前端”开发,例如 React、Vue、Angular都基于Node.js 。

Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。

Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

可以使用node -v命令来查看当前是否安装 Node 版本,若安装出现版本号信息:

若不是类似如上图显示,说明尚未安装Node.js,需要下载安装,下载地址为:Download | Node.js。

根据不同平台系统选择你需要的Node.js安装包。Windowv 上安装Node.js比较容易,只要一直下一步即可(且能自动为配置环境变量path),就不多说了【需要提醒的是在安装过程中,若不想安装大量的工具,不要点选“automatically install the necessary tools. Note that this will also install chocolatey. The script will pop_up in a new window after the installation completes.“ 意思是:自动安装必要的工具。注意,这也会安装chocolatey。安装完成后,脚本将弹出一个新窗口】。

Node.js默认安装目录为 "C:\Program Files\nodejs\" , 你可以修改目录:

可以使用node -v命令来查看Node 版本,前面提到过。

创建 Node.js 应用实例

在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:

var http = require('http');

http.createServer(function (request, response) {

// 发送 HTTP 头部

// HTTP 状态值: 200 : OK

// 内容类型: text/plain

response.writeHead(200, {'Content-Type': 'text/plain'});

// 发送响应数据 "Hello World"

response.end('Hello World\n');

}).listen(8888);

// 终端打印如下信息

console.log('Server running at http://127.0.0.1:8888/');

说明:其中var http = require("http"); 使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http。

使用 node 命令执行以上的代码:

编写了.js的程序,运行的时候就要通过node.js来运行了,在CMD中先切换到编写程序的目录下,然后用node XXX.js即可启动服务,若不先切换路径,则用node 路径\XXX.js启动服务。然后在浏览器中输入相应的监听IP地址加上端口号,这里的端口号使用比较大一点的就可以,因为是回环测试,所以使用127.0.0.1来作为测试IP。

用cd命令切换到server.js 的文件所在的目录

用node server.js 命令执行

打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页:

简单例子运行成功了,这其实是用node.js搭建了一个服务器,然后来监听端口的访问事件,最后做出相应的回应,需要指出的是,当我们关闭CMD或按CTRL+C键之后服务就关闭了。

下面再举个例子较为复杂的例子:

有两部分:服务器代码和网页代码

服务器代码如下:

//require表示引包,引包就是引用自己的一个特殊功能

var http = require("http");

var url = require("url");

var server = http.createServer(function(req,res){

//得到查询部分,由于写了true,那么就是一个对象

var queryObj = url.parse(req.url,true).query;

var name = queryObj.name;

var age = queryObj.age;

var sex = queryObj.sex;

res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});

res.end("服务器收到了表单请求" + name + age + sex);

});

//运行服务器,监听3000端口(端口号可以任改)

server.listen(3000,"127.0.0.1");

// 终端打印如下信息

console.log('Server running at http://127.0.0.1:3000/')

保存文件名为server2.js ,运行:

网页代码如下:

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title></head><body><form action="http://127.0.0.1:3000/" method="GET">姓名:<input type="text" name="name" /> <br />年龄:<input type="text" name="age" /> <br /><input type="radio" name="sex" value="男"/> 男<input type="radio" name="sex" value="女"/> 女<br /><input type="submit"></form></body></html>

保存文件名为 测试网页.html ,用浏览器运行:

下面介绍Node.js之REPL

Node.js之 REPL

Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。

REPL 的交互式的编程环境可以实时的验证你所编写的代码,非常适合于验证 Node.js 和 JavaScript 的相关 API。

Node 自带了交互式解释器,可以执行以下任务:

读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。

执行 - 执行输入的数据结构

打印 - 输出结果

循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。

Node 的交互式解释器可以很好的调试 Javascript 代码。

可以输入以下命令来启动 Node 的终端:

node

REPL 命令

ctrl + c - 退出当前终端。

ctrl + c 按下两次 - 退出 Node REPL。

ctrl + d - 退出 Node REPL.

向上/向下 键 - 查看输入的历史命令

tab 键 - 列出当前命令

.help - 列出使用命令

.break - 退出多行表达式

.clear - 退出多行表达式

.save filename - 保存当前的 Node REPL 会话到指定文件

.load filename - 载入当前 Node REPL 会话的文件内容。

停止 REPL,按下两次 ctrl + c 建就能退出 REPL:

REPL的使用

表达式运算

使用变量

你可以将数据存储在变量中,并在你需要的使用它。

变量声明需要使用 var 关键字,如果没有使用 var 关键字变量会直接打印出来。

使用 var 关键字的变量可以使用 console.log() 来输出变量。

多行表达式

Node REPL 支持输入多行表达式,执行一个 do-while 循环:

说明:

... 三个点的符号是系统自动生成的,你回车换行后即可。Node 会自动检测是否为连续的表达式。

Node.js 之NPM介绍

文介绍了 Node.js 中 NPM 的使用,我们先来了解什么是 NPM。

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入

npm -v

来测试是否成功安装。命令如下,出现版本提示表示安装成功:

如果你安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,Window 系统使用以下命令即可:

npm install npm -g

使用npm包管理工具安装第三方库(npm包),有两种安装方式:全局安装和局部安装:

从敲的命令行来看,差别只是有没有-g而已,如

npm install X      # 局部(本地)安装,则是将模块下载到当前命令行所在目录。可能会遇到 “'X' 不是内部或外部命令,也不是可运行的程序”错误。

npm install X -g   # 全局安装,可以直接在命令行里使用。

附、 npm 、cnpm常用命令及.npmrc配置文件详解

npm 、cnpm常用命令及.npmrc配置文件详解_cnds123的专栏-CSDN博客

Node.js 新手入门相关推荐

  1. node.js新手入门初学

    新公司后端需要用到node.js做开发,由于本人在此之前实习亦或是在学校做的项目仅仅使用java所谓后端语言进行项目的开发,所以在入职之前先是自己学习node.js基础的知识,方便进公司后能快速上手工 ...

  2. Node.js:入门资料

    <快速搭建 Node.js 开发环境以及加速 npm> http://fengmk2.com/blog/2014/03/node-env-and-faster-npm.html <N ...

  3. 54 Node.js快速入门

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.Node开发概述 1.1 为什么要学习服务器端开发基础 能够与后端程序员更加紧密的配合 ...

  4. Node.js核心入门(二)

    目录: Node.js核心入门(一) 全局对象 常用工具 事件机制 Node.js核心入门(二) 文件系统访问 HTTP服务器与客户端 文件系统 fs fs 模块是文件操作的封装,它提供了文件的读取. ...

  5. Node.js开发入门—使用jade模板引擎

    在"Node.js开发入门--Express安装与使用"里,我们曾经使用express generator创建了一个HelloExpress网站,express工具为我们生成了基本 ...

  6. Node.js开发入门—Express安装与使用

    之前我们在安装完Node.js后直接写了个HelloWorld网站,这次呢,我们使用Node.js的Web框架Express来重写一下HelloWorld,看看有什么不同.同时我们还会重写之前的文件服 ...

  7. Node.js开发入门—语音合成示例

    出于项目需要,搞了一个语音合成(TTS)的小示例,使用的是OKVoice. 我想在PC上测试,OKVoice的快速接入API可以实现我的目的,文档在这里:http://dev.okvoice.com/ ...

  8. Node.js新手教程——怎样实现文件上传功能

    作者:zhanhailiang 日期:2014-11-16 本文将介绍怎样使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/node ...

  9. Vue.js新手入门指南

    最近在逛各大网站,论坛,以及像SegmentFault等编程问答社区,发现Vue.js异常火爆,重复性的提问和内容也很多,楼主自己也趁着这个大前端的热潮,着手学习了一段时间的Vue.js,目前用它正在 ...

最新文章

  1. 【博士论文】机器学习中的标记增强理论与应用研究
  2. python plot 坐标轴范围,Python,Matplotlib,子图:如何设置轴范围?
  3. netty epoll调用示例
  4. Selective Search
  5. Visual C++位图操作(1)
  6. 【CTR模型】TensorFlow2.0 的 DeepFM 实现与实战(附代码+数据)
  7. 计算机主机的奥秘,揭秘网吧电脑为何流畅的奥秘
  8. 使用 guard 的正确姿势
  9. Django:MySQL查询结果为datetime.date无法转换为JSON
  10. 自然语言处理 -- NLP作业 1 :训练词向量
  11. 【吴恩达机器学习】学习笔记——梯度下降
  12. 配置pytoch版人脸关键点网络pfld docker环境
  13. 文件操作 详解(freopen)(C++)
  14. GM505高斯计使用方法图解
  15. 物联网(IOT)介绍与发展背景
  16. 数学分析教程(科大)——2.1笔记+习题
  17. 什么是自签名证书?自签名SSL证书的优缺点?
  18. android脚本实现自动捉妖,一起来捉妖自动捉妖脚本使用教程ios00
  19. recyclerview的条目添加点击事件
  20. [转]Cortex-a8 arm11 arm9 xscale powerpc 嵌入式处理器实测性能

热门文章

  1. linux 失能鼠标,Linux内核中CPU主频和电压调整 (一)
  2. 高并发之伪共享和缓存行填充(缓存行对齐)(@Contended)
  3. 5 设置windows2003 ipsec/l2tp psk 的接入服务器. 及一些看到的问题.
  4. 数据库实验一 数据库定义
  5. java排序算法(插入排序,冒泡排序,选择排序)
  6. C语言详解 FILE文件操作
  7. python镜像网址
  8. exit(0)和_exit(0)区别
  9. C语言 exit 0;与exit 1;return 0;return1
  10. uni-app日历组件(calendar),兼容安卓、ios、微信、百度、抖音小程序