Jetbrains webstorm 2020.1.2 + Crack
Node.js 开发IDE webstorm 下载
WebStorm,适用于专业JavaScript和前端Web开发人员的集成开发环境。
安装与使用方法压缩包里有,仅供个人学习使用,支持正版,请勿用于商业用途。
[Download the WebStorm 2020.1.2 and Crack >>]
提取码: xrwx
解压密码:www.tangkin.com
=======================
Node.js 相关其它资源
相关资源
Node.js官网:https://nodejs.org/zh-cn/
版本管理工具nvm:https://github.com/nvm-sh/nvm
包管理工具npm:https://www.npmjs.com/
npm中文文档:https://www.npmjs.cn/
国内的 npm 镜像源:http://cnpmjs.org/
中文社区:https://cnodejs.org/
nodejs 基础命令及库的安装
检查node版本
node -v
检查npm版本
npm -v
更新npm
npm install npm -g
全局安装cnpm并且使其使用淘宝镜像
npm install cnpm -g --registry=https://registry.npm.taobao.org
全局与局部
由于npm安装分为本地安装与全局安装,本地安装就是你当前的dos执行目录下进行安装,一般配置环境变量后都会安装在user目录之下的node_modules文件夹之下,所以除了安装在项目下可以用本地安装外,在其它路径之下都推荐使用全局安装,安装到电脑的指定路径方便统一进行管理与查看,所以要先进行配置。
npm install xxx 本地安装
npm install xxx -g 全局安装
更改node的下载目录,自定义node_global、node_modules
npm root -g 查看包存放路径
1、在node安装目录下下新建两个文件夹
node_global 全局包下载存放
node_cache node缓存
npm config set prefix "d:\program file\nodejs\node_global"
npm config set cache "d:\program file\nodejs\node_cache"
注:修改了默认的保存路径,系统path查找路径记得也要改一下。不然运行程序全局包会显示找不到:
path 新增 D:Program Filesnodejsnode_global
系统变量 新增 NODE_PATH D:Program Filesnodejsnode_globalnode_modules
可在user目录下找到 .npmrc 文件进入后进行更改,在其中指定盘符绝对路径
npm 的使用
npm
npm 是世界上最大的软件注册中心,随同NodeJS一起安装,来自全球各地的开源开发人员使用 npm 来共享和复用软件包。npm 由三个独立的部分组成:
网站: https://npmjs.com 是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。
注册表(registry):是一个巨大的数据库,保存了每个包(package)的信息。
命令行工具 (CLI):通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。
# 查看 npm 版本
npm -v
# 更新npm版本
npm install npm@latest -g
# 搜索模块
npm search hexo
# 安装依赖包
npm install <Module Name>
npm install hexo # 本地安装 hexo
npm install hexo -g # 全局安装 hexo
# 查看所有全局安装的模块
npm list -g
# 查看某个模块
npm list hexo
# 卸载模块
npm uninstall hexo
# 卸载后,查看包是否还存在
npm ls
# 更新某个模块
npm update hexo
# 创建模块
npm init
每个版本的 Node 都自带一个不同版本的 npm,可以用 npm -v 来查看 npm 的版本。全局安装的 npm 包并不会在不同的 Node 环境中共享,因为这会引起兼容问题。它们被放在了不同版本的目录下,例如 ~/.nvm/versions/node/${version}/lib/node_modules 这样的目录。
运行下面这个命令,可以从特定版本导入之前安装过的 npm 包到我们将要安装的新版本 Node 中:
nvm install v12.16.1 --reinstall-packages-from=v10.15.3
Node.js常用模块
更多模块详细介绍,
可查阅官方文档: https://nodejs.org/api/
https://zhuanlan.zhihu.com/p/104297958
Global模块
浏览器JavaScript当中window是全局对象,NodeJS中全局对象是global,global最根本的作用是作为全局变量的宿主(即所有的全局变量都是global对象的属性),因此在所有模块中都可以直接使用而无需包含。
Process模块
process是全局变量(即global对象的属性),用于描述当前NodeJS进程状态。
Console模块
console用于提供控制台标准输出。
console.log():向标准输出流打印字符并以换行符结束(如果只有1个参数,则输出该参数的字符串形式;如果有2个参数,则以类似于C语言printf()的格式化输出)。
console.error():与console.log()的用法相同,只是向标准错误流进行输出。
console.trace():向标准错误流输出当前的调用栈:
$ node app.js
Trace
at Object.<anonymous> (/workspace/app.js:1:71)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:499:12)
at Function.Module._load (module.js:491:3)
at Function.Module.runMain (module.js:684:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3
Util模块
util提供常用函数集合,用于弥补核心JavaScript功能方面的不足。
Events模块
events是NodeJS最重要的模块,因为NodeJS本身就是基于事件式的架构,该模块提供了唯一接口,所以堪称NodeJS事件编程的基石。events模块不仅用于与下层的事件循环交互,还几乎被所有的模块所依赖。
events模块只提供1个events.EventEmitter对象,EventEmitter对象封装了事件发射和事件监听器。每个EventEmitter事件由1个事件名和若干参数组成,事件名是1个字符串。EventEmitter对每个事件支持若干监听器,事件发射时,注册至该事件的监听器依次被调用,事件参数将作为回调函数参数传递。
下面例子中,emitter为事件targetEvent注册2个事件监听器,然后发射targetEvent事件,结果2个事件监听器的回调函数被依次先后调用。
var events = require("events");
var emitter = new events.EventEmitter();
emitter.on("targetEvent", function(arg1, arg2) {
console.log("listener1", arg1, arg2);
});
emitter.on("targetEvent", function(arg1, arg2) {
console.log("listener2", arg1, arg2);
});
emitter.emit("targetEvent", "Hank", 2018);
$ node app.js
listener1 Hank 2018
listener2 Hank 2018
EventEmitter常用API
EventEmitter.on(event, listener):为指定事件注册监听器,接受1个字符串事件名event和1个回调函数listener。
EventEmitter.emit(event,[arg1],[arg2],[...]):发射event事件,传递若干可选参数到事件监听器的参数列表。
EventEmitter.once(event, listener):为指定事件注册1个单次监听器,即该监听器最多只会触发一次,触发后立刻解除。
EventEmitter.removeListener(event, listener):移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。
EventEmitter.removeAllListeners([event]):移除所有事件的所有监听器,如果指定event,则移除指定事件的所有监听器。
File System模块
fs模块封装了文件操作,提供了文件读取、写入、更名、删除、遍历、链接等POSIX文件系统操作,该模块中所有操作都提供了异步和同步2个版本。
fs.readFile(filename,[encoding],[callback(err,data)])用于读取文件,第1个参数filename表示要读取的文件名。第2个参数encoding表示文件的字符编码,第3个参数callback是回调函数,用于接收文件内容。
回调函数提供err和data两个参数,err表示有无错误发生,data是文件内容。如果指定encoding,data将是1个解析后的字符串,否则data将会是以Buffer`形式表示的二进制数据。
fs.readFileSync()
NodeJS提供的fs.readFileSync()函数是readFile()的同步版本,两者接受的参数相同,读取到的文件内容会以函数返回值形式返回。如果有错误发生fs将会抛出异常,需要使用try...catch捕捉并处理异常。
与同步I/O函数不同,NodeJS中异步函数大多没有返回值。
fs.open()
fs.open(path,flags,[mode],[callback(err,fd)])封装了POSIX的open()函数,与C语言标准库中fopen()函数类似。该函数接受2个必选参数,第1个参数path为文件路径,第2个参数flags代表文件打开模式,第3个参数mode用于创建文件时给文件指定权限(默认0666),第4个参数是回调函数,函数中需要传递文件描述符fd。
fs.read()
fs.read(fd,buffer,offset,length,position,[callback(err,bytesRead,buffer)])封装了POSIX的read函数,相比fs.readFile()提供了更底层的接口。
fs.read()的功能是从指定的文件描述符fd中读取数据并写入buffer指向的缓冲区对象。offset是buffer的写入偏移量。length是要从文件中读取的字节数。position是文件读取的起始位置,如果position的值为null,则会从当前文件指针的位置读取。回调函数传递bytesRead和buffer,分别表示读取的字节数和缓冲区对象。
Http模块
NodeJS标准库提供的http模块封装了一个高效的HTTP服务器http.Server和一个简易的HTTP客户端http.request。
http模块中的HTTP服务器对象,核心由NodeJS底层依靠C++实现,接口使用JavaScript封装,兼顾了高性能与简易性。
创建Node.js应用
使用Node创建http服务器
使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:
var http = require("http");
使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:
const http = require('http');
const hostname = '127.0.0.1';
const port = 8080;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
// 终端打印如下信息
server.listen(port, hostname, () => {
console.log(Server running at http://${hostname}:${port}/
);
});
以上代码我们完成了一个可以工作的 HTTP 服务器。使用 node 命令执行以上的代码:
node server.js
Server running at http://127.0.0.1:8080/
打开浏览器访问 http://127.0.0.1:8080/,会看到一个写着 "Hello World"的网页。
web框架express简单使用
express官网:http://www.expressjs.com.cn/
express 是 Node应用最广泛的快速、开放、极简主义 web 框架,现在是 4.x 版本。官方提供了应用程序生成器工具 express-generator 可以快速创建应用程序骨架。
安装:
npm install express --save
npm install express-generator -g
创建名称为 ExpressDemo 的 Express 应用。此应用将在当前目录下的 ExpressDemo 目录中创建,并且设置为使用 Pug 模板引擎:
express --view=pug ExpressDemo
create : ExpressDemo/
create : ExpressDemo/public/
create : ExpressDemo/public/javascripts/
create : ExpressDemo/public/images/
create : ExpressDemo/public/stylesheets/
create : ExpressDemo/public/stylesheets/style.css
create : ExpressDemo/routes/
create : ExpressDemo/routes/index.js
create : ExpressDemo/routes/users.js
create : ExpressDemo/views/
create : ExpressDemo/views/error.pug
create : ExpressDemo/views/index.pug
create : ExpressDemo/views/layout.pug
create : ExpressDemo/app.js
create : ExpressDemo/package.json
create : ExpressDemo/bin/
create : ExpressDemo/bin/www
change directory:
$ cd ExpressDemo
install dependencies:
$ npm install
run the app:
$ DEBUG=expressdemo:* npm start
按提示安装依赖并启动。
cd ExpressDemo
npm install
DEBUG=expressdemo:* npm start # MacOS
在浏览器中打开 http://localhost:3000/ 就可以看到这个应用了。
通过生成器创建的应用一般都有如下目录结构:
tree -I "node_modules"
.
├── app.js
├── bin
│ └── www
├── package-lock.json
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug
7 directories, 10 files
总结console 的几种用法:https://www.jianshu.com/p/152d051de869
1、console.log 用于输出普通信息
2、console.info 用于输出提示性信息
3、console.error用于输出错误信息
4、console.warn用于输出警示信息
5、console.debug用于输出调试信息
6、console.table 用于jason表格输出
7、console.assert() 当检测到传入的表达式为false的情况下才输出 firebuglite中不支持,Chrome和FireBug支持
8、console.count() 显示当前语句执行次数,自动在提示信息后补全 :和一个空格
9、console.time & console.timeEnd
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。