一、安装:

去官网下载稳定版本,安装即可。

安装后执行node -v,显示node版本,然后输入node回车,然后输出console.log(111);,正常输出即可。

二、入门介绍:

1、nodejs是一门后端语言,是基于chrome的V8引擎,JavaScript运行在服务器平台上的一门语言。简单来说就是能够运行于服务器的JavaScript。

2、nodejs系统是基于CommonJS规范,CommonJS规范是同步加载模块,而AMD规范是异步加载模块。

3、nodejs支持部分es6语法,在文件顶部添加"use strict"即可。

4、直接在命令行下执行node 文件名字即可,执行该js文件

5、模块的导出和引入:

(1)、模块分类:

  • 原生(核心)模块:该模块在Node.js源代码编译的时候编译进了二进制执行文件,加载的速度最快,例如http、fs等
  • 文件模块:文件模块是动态加载的,加载速度比原生模块慢。

(2)、模块的导出:module.exports 或者 exports

"use srict";

function add(a, b) {
return a + b;
}
// 此方法导出,引入后的直接就是add函数,可以直接使用
module.exports = add;
// 此两种方法导出,引入后的是一个对象,对象有一个方法属性add,通过xxx.add的方法使用
exports.add = add;
module.exports = add;

module.exports 和 exports的区分:每个模块js文件被nodejs封装后,都会存在两个变量module和exports。

module是一个对象,有一个对象属性exports,即module.exports,其初始值为一个空对象。

然后exports指向module.exports的引用,即exports = module.exports。

最后require每次引入的都是module.exports,而不是exports,所以我们对module.exports直接赋值或者添加属性都可以正常导出,我们为exports添加属性也是可以的,因为exports指向module.exports,

但是我们为exports直接赋值是不可以正常导出的,因为此行为导致exports不在指向module.exports,module.exports根本不受任何影响,最后导出的modulee.exports是一个空对象。

(3)、模块的引入:require(参数)

参数共四种:

  • http、fs、path等原生模块(直接通过名称引入)     const fs = require('fs');
  • ./mod 或 ../mod,相对路径的文件模块(通过相对路径引入)     const add = require('./math/add.js'); (其中.js后缀可以省略,默认即是js文件)
  • /pathtomodule/mod,绝对路径的文件模块(通过绝对路径引入)     const add = require('E:/nodejs/math/add.js');
  • react,文件模块(在node_module中寻找)(通过名称引入)   const postcss = require('postcss');

引入流程:

Node.js系统针对原生模块的文件模块存在缓存机制,当我们第一次引入模块后,便对该模块进行缓存,我们再次引入该模块时,直接从缓存获取使用。

所以引入一个模块mode的流程就是,先区分mod是原生模块还是文件模块,然后到对应模块缓存中查看有没有该mod,如果有直接获取使用,如果没有则正常引入,然后缓存该mod。

6、nodejs的包管理工具npm

npm一些命令:

npm init:初始化包,帮用户在当前目录生成一个package.json文件

npm install:嵌入包模块(可以先嵌入cnpm,然后使用cnpm install,淘宝镜像,比npm快一些)

  • npm install 模块名:安装本地模块
  • npm install 模块名 -g: 安装全局模块
  • npm install 模块名 --save: 把安装的模块更新到package.json中
  • npm install 模块名 -dev:模块安装到package.json的devDependencies中

npm uninstall 模块名:卸载模块

package.json

{
// 包的名字
"name": "mypack",
// 包的版本号
"version": "1.0.0",
// 木块被引用的入口文件,默认为index.js
"main": "index.js"
// 项目运行所依赖的模块
// "dependencies": {},
// 指定项目开发所需要的模块
// "devDependencies": {},
}

/*
版本号:
指定版本:1.2.1,遵循"大版本.中版本.小版本"
波浪号(tilde)+指定版本:~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,安装时不改变大版本号和次要版本号
插入号(caret)+指定版本:^1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,安装时不改变大版本号(如果大版本号是0,则和波浪号行为相同,因为此时处于开发阶段,即使次要版本号该改变,也可能带来程序的不兼容)
lateest:安装最新版本
*/

三、例子demo

exam01:

// add.js
"use srict"; module.exports = function (a, b) {
return a + b;
}
// index.js
"use srict"; const add = require('./add'); console.log(add(11, 22)); //

在index.js目录下执行node index,打印结果33即可

----------------------------------end

nodejs之入门的更多相关文章

  1. nodeJS 菜鸟入门

    从一个简单的 HTTP 服务开始旅程-- 创建一个 server.js 文件,写入: //最简单的 http 服务例子 var http = require("http"); ht ...

  2. nodejs快速入门

    目录: 编写第一个Node.js程序: 异步式I/O和事件循环: 模块和包: 调试. 1. 编写第一个Node.js程序: Node.js 具有深厚的开源血统,它诞生于托管了许多优秀开源项目的网站—— ...

  3. 02 nodejs命令参数(NodeJS基础入门)

    声明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 建议使用开发软件:webstorm或hbuil ...

  4. 【NodeJs】入门笔记一

    忙乎了两周,把一个后台模型项目完成了,整个过程又进步不少,私喜一下. 暂时可以悠闲两天,又一次把node教程拿出来,每次都看一点点,积少成多吧. 查了很多资料,觉得从<Node入门>开始看 ...

  5. Nodejs websocket入门

    websocket 2011年技术文档 http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/index.html 浏览器端接 ...

  6. 边走边学Nodejs (基础入门篇)

    1.什么是Node.js Nodejs ,或者node, 是一个基于ChromeJavaScript执行时建立的平台.用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件驱动, 非堵 ...

  7. NodeJS爬虫入门

    1. 写在前面 往常都是利用 Python/.NET 语言实现爬虫,然现在作为一名前端开发人员,自然需要熟练 NodeJS.下面利用 NodeJS 语言实现一个糗事百科的爬虫.另外,本文使用的部分代码 ...

  8. nodejs环境 + 入门 + 博客搭建

    NodeJS:NodeJS是一个使用了Google高性能V8 引擎 的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成 ...

  9. nodejs+mysql入门实例

    此前我已准备好mysql,使用的是PHP的组合包Appserv 手动添加数据库依赖: 在package.json的dependencies中新增, “mysql” : “latest”, { &quo ...

随机推荐

  1. Ubuntu安装CodeBlocks

    访问 https://launchpad.net/~damien-moore/+archive/ubuntu/codeblocks-stable,找到页面上加粗的那一段英文(以“ppa:”开头),如“ ...

  2. Quartus和ISE调用Synplify进行综合的问题

    分别尝试采用Quartus和ISE调用第三方综合软件Synplify进行综合. [软件版本] Quartus II 13.0 (SP).ISE 14.4 .Synplify 201303. [问题描述 ...

  3. [码海拾贝 之Perl]在字符串数组中查找特定的字符串是否存在

    前言 检索一个字符串是否存在于一个数组中, 最主要的想法应该就是对数组进行循环, 逐个推断数组的每一个元素值和给定的值是否相等. (在Java语言还能够把数组转成 List , 在 list 中直接有 ...

  4. vmstat 命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

  5. 【Mac系统 + Git】之上传项目代码到github上以及删除某个文件夹

    之前做开发的时候,用过一段时间git代码管理工具,用命令行操作感觉十分高大上,今天我想从头总结一篇Mac系统下如何利用git上传代码到github上的学习. 目录 一.安装Git 二.创建.ssh文件 ...

  6. 【puppeteer+Node.js安装环境】之步骤

    步骤一:首先,安装node.js环境,从官网下载最新的安装包. 步骤二:安装完成之后,再安装npm,通过命令行输入:npm install -g cnpm --registry=https://reg ...

  7. MDwiki 调研

    下载解压 然后 mv mdwiki.html index.html 创建 一个index.md 然后就可以直接访问http://example.com/ 直接把你的md文件放在目录里面就可以了 cer ...

  8. 06 Memcached中的一些参数限制

    一: Memcached中的一些参数限制 Key的长度:250字节(二进制协议支持65536个字节) value的限制:1M ,一般都是存储一些文本,如新闻标题等等这个值足够了, 内存的限制:32位下 ...

  9. git 入门二 (基础)

     1.创建新仓库      git init    touch  test.txt  git add --a  git commit -m "fist commit"    初始化 ...

  10. db2 error

    DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016, SQLERRMC=7;MCD_BJ.MTL_CHANNEL_DEF, DRIVER=4.18.60 你的表处于 ...