学习Nodejs
学习一门新技术时,我们要知道它是什么和有什么作用。
学习目标:
一.什么是Nodejs?
概述: Node.js 不是一门新的语言,是一个JavaScript运行环境, 简单的说 Node.js 就是运行在服务端的 JavaScript。
二.Nodejs有哪些内容及作用?
1.安装Node.js(略)//对应系统版本,傻瓜式安装
安装成功后cmd命令查看版本信息:node -v
2.快速入门。简单demo样式 //创建一个demo1.js文件
var a=1; var b=2; console.log(a+b);
在IDEA中输入命令:node demo1.js 可看到输出。
//demo2.js使用函数 ,输入命令测试: node demo2.js var c=add(100,200); console.log(c); function add(a,b) { return a+b; }
2.1 模块化编程:
每个文件就是一个模块,有自己的作用域。在一个文件里定义的变量、函数、类、都是私有的,对其他文件不可见。
//demo1.js 模块 /*每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外 的接口。加载某个模块,其实是加载该模块的module.exports属性。*/ exports.add=function (a,b) { return a+b; }
//创建demo2.js 来引入demo1.js模块 var demo = require('./demo1'); console.log(demo.add(100, 200));
//测试 node demo2.js
2.2 创建Nodejs web服务器
//demo3.js
/**目标**:引入http模块监听8888端口实现输出字符*/ //引入node.js内置的http模块 var http=require("http"); //创建并监听web服务器 http.createServer(function (request, response) { //发送http头部 //参数1:响应状态码,200表示成功 //参数2:响应头部信息,Content-Type内容类型:纯文本 response.writeHead(200, {"Content-Type": "text/plain"}); //发送响应数据 response.end("Hello World \n"); }).listen(8888); console.log("服务器运行在 http://127.0.0.1:8888 ");
测试: node demo3.js 访问
终止运行:ctrl+c
理解服务端渲染
//创建demo5.js,将上边的例子写成循环的形式 var http=require("http"); //创建并监听web服务器 http.createServer(function (request, response) { //发送http头部 //参数1:响应状态码,200表示成功 //参数2:响应头部信息,Content-Type内容类型:纯文本 response.writeHead(200, {"Content-Type": "text/plain"}); for(var i=0;i<10;i++){ response.write('Hello World\n'); } //发送响应数据 response.end(''); }).listen(8888); console.log("服务器运行在 http://127.0.0.1:8888 "); //检查源代码发现,只有10条数据。说明是在服务端完成的,非浏览器(客户端)完成
2.3 处理Nodejs web 请求参数
//demo6.js
// **目标**:引入http和url模块创建web容器并使用url解析请求路径中参数且输出 //需求:http://127.0.0.1:8888?id=123&name=mukk 获取到请求路径中参数及值并输出 /* 实现步骤: 1. 创建web服务器; 2. 引入url模块; 3. 利用url解析请求地址中的参数和值并输出 4. 启动测试;*/ //引入node.js内置http模块 var http = require("http"); var url = require("url"); //创建并监听web服务器 http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); //解析请求地址 //参数1:请求地址 //参数2:true的话使用query解析参数到一个对象,默认false var params = url.parse(request.url, true).query; for(var key in params){ response.write( key + " = " + params[key]); response.write("\n"); } //发送响应数据 response.end(""); }).listen(8888); console.log("服务器运行在 http://127.0.0.1:8888 ");
测试:node demo6.js
浏览器输入:http://127.0.0.1:8888/?id=123&name=mukk
三、包资源管理器 NPM
3.1 什么是NPM
npm是一个node.js的管理和分发工具,可以根据配置package.json下载js库。
本地安装:将下载的模块安装到当前目录(项目);
全局安装:将下载的模块安装到全局的目录( npm root -g )
node.js已经了npm工具,命令输入npm -v 查看版本
在该工程目录下cmd或者控制台输入 npm init //会生成package.json配置文件,后可修改
本地安装模块:在项目目录下,管理员身份打开命令输入npm install express // 此时项目模块下生成node_modules这个文件夹,用于存放js库,相当与maven仓库
全局安装:查看目录路径: 当前目录下cmd 输入npm root -g //这个命令输出的目录就是全局安装的文件目录路径
比如全局安装 jquery,输入命令 npm install jquery -g //全局目录下会存放jquery目录
3.1.1切换NPM镜像可以加快下载速度:需要安装nrm 。
npm install nrm -g //全局安装
nrm ls命令查看仓库列表
或者使用cnpm来下载模块 需要安装cnpm.
#如果不使用nrm切换,可以在安装cnpm的时候指定镜像仓库
查看版本:cnpm -v
使用cnpm下载模块:cnpm install jquery -g //下载 jquery模块
一般情况我们用npm即可。
四、WebPack
1.什么是WebPack
npm install webpack -g
npm install webpack-cli -g
其他参考资料 可以看下这个: https://cloud.tencent.com/developer/information/node.js%E7%9A%84%E6%84%8F%E4%B9%89