Node_介绍及模块化

信息获取来源Eno Yao

介绍

Nodejs是一个基于Chrome V8引擎的JavaScript运行的

Chrome浏览器 = NodeJS(控制台,JS) + 界面(HTML,CSS)

Nodejs就是想做一件事情,把浏览器的JS引擎拿出来,放到任何设备上来运行JS文件

前端font end(浏览器端)

要运行JS,要有HTML文件,也要有浏览器环境

浏览器=界面+控制台

JS是必须运行在浏览器上,所以只能控制浏览器

后端back end(服务器端)

要运行JS,既不需要HTML文件,也不需要浏览器环境,只需要Node环境

JS有了node环境,可以运行在非浏览器环境下,node是装在系统上,JS可以操作系统,安装在其他设备上,就可以操作对应设备

安装

如果没有安装的node环境去node官网安装维护版本

查看版本号,在cmd中执行,

node -v

运行

如何使用node,以前是打好一份JS,需要配合HTML文件执行,现在只需要在电脑安装好node环境,用以下方式启动

1.写一份JS代码
2.在命令行定位到此代码的位置,运行命令node JS文件名.js或者node xxx(省略后缀)

一般来说,运行nodejs node JS文件的名字.js ,但是有些情况,例如gulp xxx,详情查看Sass&Gulp博文

模块化

  • 自定义模块 (自己写的JS)
  • 内置模块(下方进行描述)
  • 第三方模块 (jquery)

前端用得比较多的是前二个方案,后端用得比较多后二个方案

1.顺序问题,分开每一个JS去使用

<script src="./lib/jquery.js"></script>
<script src="./lib/katsuki.js"></script>

它会全局污染,就比如jquery如果引入两次,那最后一次会覆盖前面的那一份,原因是因为jquery是把$挂载到全局的window上面

2.requirejs,详情查看module博文

3.ES5

导出 module.exports(define)
导入 require

/* 项目结构
   run.js
   js
      katsuki.js	
*/
katsuki.js
function plus(num1,num2){
	return num1+num2;
}
// 导出
module.exports = {
    plus: plus,
    mult: function (num1, num2) {
        return num1 * num2
    }
}

run.js
var katsuki = require("./js/katsuki.js");
console.log(katsuki.plus(10,8));
console.log(katsuki.mult(10,8));

在run.js目录下运行cmd命令

node run 
18
80

4.ES6

导出 export
导入 import

内置模块

各内置模块用法,请查看官网内置模块API

不需要自己写,node环境自带,可以直接引入

node引擎如果放在浏览器里面启动(DOM和BOM)

node引擎如果放在系统上的(跟系统相关的模块,文件操作,网络操作,服务器的模块)

模块名字
读写文件fs
创建服务器http
查看系统os
压缩文件zip

调用系统写文件功能案例

/* 项目结构
   kwrite.js
   katsuki.html 文件内容为空
*/
kwrite.js
//直接引模块名字,那它要不就是内置模块,要不就是第三方模块
const fs = require('fs');
//fs.writeFile(操作文件相对于当前文件的路径,写入内容,回调函数)
fs.writeFile("./katsuki.html", `
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>katsuki</title>
    </head>
    <body>
        <p>katsuki duse</p>
    </body>
    </html>
`, function (err, data) {
    if (err) throw err;
    console.log(data)
})

在kwrite.js目录下运行cmd命令

node kwrite

运行后在katsuki.html中得到写入内容

调用http请求案例

http.js
const http = require('http');
http.get("http://katsuki/index.html", (res) => {
    var temp = ""
    res.on('data', function (chunk) {
        temp = temp + chunk
    })
    res.on('end', function () {
        console.log(temp)
    })
})

在http.js目录下运行cmd命令

node http

运行后在命令框中得到网页html结构

HTTP

http超文本传输协议
前端最多就是ajax(http协议的一种前端实现方案) GET/POST

GETPOST
参数在url上参数在请求体
有可能有长度没长度限制
不安全安全
状态码
1xx开始执行
2xx成功
3xx重定向
4xx客户端错误,浏览器端
5xx服务端

第三方模块

npm包管理中心去下载一些第三方包(别人写好传上去的),去在本地node平台实现自己的一些功能

npm类似于一个模块应用商店,里面有大量的第三方模块

安装

npm install xxx -g
npm i

建议安装cnpm替代npm,或者yarn,在命令行上输入以下代码安装

npm install -g cnpm --registry=https://registry.npm.taobao.org
npm install -g yarn

卸载

npm uninstall xxx  //卸载某个模块
npm uninstall //全部卸载

初始化

生成一份package.json描述文件,作用查看Sass&Gulp博文中gulp上传注意事项

npm init

使用第三方模块

var request = require('request');
var gulp = require('gulp');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值