背景:游戏QA一枚,薄弱代码基础,学习NodeJS提升能力。
学习资料:https://www.runoob.com/nodejs/nodejs-tutorial.html
学习过程记录于此。
1、Mac安装NodeJS:
brew install node
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。
2、第一个NodeJS程序
首先了解Node.js 应用是由哪几部分组成的:
1、引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
2、创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
3、接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
第一个程序:
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/');
执行:
node server.js
注意:不能开代理,不然可能会有以下报错:
Server running at http://127.0.0.1:8888/
events.js:167
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::8888
at Server.setupListenHandle [as _listen2] (net.js:1336:14)
at listenInCluster (net.js:1384:12)
at Server.listen (net.js:1471:7)
at Object.<anonymous> (/Users/yangxiaoxuan/server.js:11:4)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
Emitted 'error' event at:
at emitErrorNT (net.js:1363:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
at startup (internal/bootstrap/node.js:266:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:596:3)
yangxiaoxuandeMacBook-Pro:~ yangxiaoxuan$ node server.js
Server running at http://127.0.0.1:8888/
解决方法:关掉代理即可
3、NPM
NPM是包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
npm install express
可能会报错:
npm WARN saveError ENOENT: no such file or directory, open '/Users/yangxiaoxuan/package.json'
npm WARN enoent ENOENT: no such file or directory, open '/Users/yangxiaoxuan/package.json'
npm WARN yangxiaoxuan No description
npm WARN yangxiaoxuan No repository field.
npm WARN yangxiaoxuan No README data
npm WARN yangxiaoxuan No license field.
原因是:express 4.X 的版本已经不提供之前那样的命令行工具了
解决方法:用以下命令即可安装
sudo npm install -g express-generator
全局安装和本地安装:
本地安装 (npm install ***)
1、将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
2、可以通过 require() 来引入本地安装的包。
全局安装 (npm install *** -g)
1、将安装包放在 /usr/local 下或者你 node 的安装目录。
2、可以直接在命令行里使用
其他常用命令(以express为例子):
npm list express -g
:查看全局安装的模块
npm list express
:查看某个模块的版本
npm uninstall express
:卸载
npm update express
:更新
npm search express
:搜索
npm init
:创建一个模块
npm publish
:创建一个模块后发布
3、安装后的模块在这个目录下:node_modules/
具体可以看相应目录下的package.json