node.js(1)

node.js是什么?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的出现吸引了很多前端开发人员开始用 JavaScript 开发服务器代码,其异步编程风格也深受开发人员的喜爱。Node.js 的伟大不仅在于拓展了 JavaScript 在服务器端的无限可能,更重要的是它构建了一个庞大的生态系统。

node.js的安装以及环境搭建

  1. 下载node安装node环境(https://nodejs.org/en/download/)

  2. 检查是否安装成功:打开cmd如图所示则成功
    在这里插入图片描述

  3. 使用vscode 开发 简单配置开发环境 安装node.js开发插件

Node.js创建第一个应用:

1.接入服务端
2.创建服务器
3.需要引入http模块 流处理API
4.引入文件
5.使用API方法
6.设置端口port

//携入服务端
//创建服务器  
//需要引入http模块  流处理api
//1.引入文件
//2. 使用api的方法
//3. 设置端口port
const http=require("http");
//req 请求相关信息 res服务返回的相关信息
http.createServer((req,res)=>{
    //配置响应头的编码格式
    //res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    //响应数据
    res.write("你好node.js")
    //服务结束
    res.end();
}).listen(8150,"localhost",()=>{
    console.log("server start");
});

url模块:

引入url模块
var url = require(’ url ');
方法调用
url.parse( ) 解析url地址`

var url=require('url');
var src='http://www.baidu.com?name=maodou&sex=0';
//解析地址 
//参数1位解析的路径   参数2:可以将地址上的值解析出来
var path=url.parse(src,true);
console.log(path);

使用http模块+url模块解析路径上的值

	var http=require("http");
	//url 模块  解析路径  www.maodou.com?id&name=2
	var url=require("url");
	http.createServer(function (req,res){
	//配置响应头的编码格式
    	res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
    	//解析路径输出路径上的值
    	var path=url.parse(req.url,true);
    	res.write(path.query.id);
    	res.end();
	}).listen(8100);

注意

在node.js中文件修改需要重新启动服务:这样开发比较慢,所以需要安装自启动工具supervisor
安装方法:cnpm install -g supervisor --save
安装完成之后启动文件使用 supervisor ****.js
启动服务之后修改代码会自动启动服务

Common.js和Node.js模块

  • Common.js中的自定义模块

Commonjs规范的提出,弥补javascript没有标准的缺陷,提供一个类似后端语言的标准库,也就是说commonjs是模块化的标准,nodejs就是commonjs模块化的实现。在nodejs中除了http,url,fs等等都是nodejs的内置模块,可以直接使用,commonjs中自定义模块的实现:

  • node.js中的自定义模块

在nodejs中将公共的功能抽离为单独的js文件作为模块,在外部是没有办法访问的(类似后端的私有的属性和方法);要想使用模块,就必须在模块里面通过exports或者module.exports暴露属性或者方法。在需要的模块使用require引入模块。

server.js
const http=require("http");
//自定义模块封装 
let server=require("createServer");
//req 请求相关信息 res服务返回的相关信息
http.createServer(server).listen(8150,"localhost",()=>{
    console.log("server start");
});

//整个模块 暴露出去
//export default http;
module.exports=http;

common.js
/*
在js文件里面引入Server.js模块文件
*/
var server=require("./Server.js");//在当前的目录里面找文件 也可以省略.js后缀

node.js
let stu=[
    {
        "name":"张三",
        "age":"20",
        "sex":"男"
    },
    {
        "name":"张三",
        "age":"20",
        "sex":"男"
    }
]
module.exports=stu;

common2.js
var s=require("./todo");
console.log(s.name);
console.log(s.setwork());

注意:

nodejs 可以自动找node_modules文件下的文件 :如果node_modules文件下有文件夹 可在cd进入这个文件 使用命令npm init –yes 安装当前文件的package.json文件,直接请求require(“名字”);

node.js第三方包的使用:

创建 node项目之后先使用命令进入项目文件,安装项目的配置文件package.json文件。
使用命令 npm init /cnpm init 或者 npm init –yes/cnpm init –yes (这种表示严格模式命名)
{ "name": "nodedemo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
第三方包使用建议官网:www.npmjs.com

单向加密(不能解密)

md5-node包
安装包cnpm install md5-node --save
安装完之后项目里面生成一个node_modules依赖文件

使用方法:

server.js
const http=require("http");
//自定义模块封装 
let server=require("createServer");
//req 请求相关信息 res服务返回的相关信息
http.createServer(server).listen(8150,"localhost",()=>{
    console.log("server start");
});

//整个模块 暴露出去
//export default http;
module.exports=http;

createServer.js
//url 模块  解析路径  www.maodou.com?id&name=2
const url=require("url");
let stuData=require("../model/getUserData");
//要加密先引入加密模块
let md5=require("md5-node");//单向加密 不能解密
module.exports=(req,res)=>{
    if(req.url!="/favicon.ico"){
        let path=url.parse(req.url,true);
        //配置响应头的编码格式
        res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
        //响应数据
        console.log(stuData);
        console.log(md5('12345'));//e10adc3949ba59abbe56e057f20f883e
        //服务结束
        res.end();
    }
}

双向加密(可解密):

base64 包
安装包cnpm install base64 --save
安装完之后项目里面生成一个node_modules依赖文件

使用方法:

server.js

const http=require("http");
//自定义模块封装 
let server=require("createServer");
//req 请求相关信息 res服务返回的相关信息
http.createServer(server).listen(8150,"localhost",()=>{
    console.log("server start");
});

//整个模块 暴露出去
//export default http;
module.exports=http;

createServer.js

//url 模块  解析路径  www.maodou.com?id&name=2
const url=require("url");
let stuData=require("../model/getUserData");
//引入加密解密模块 jsbase64
let base64=require("js-base64").Base64;

//加载文件流fs模块 
let stream=require("../model/filestream");
module.exports=(req,res)=>{
    if(req.url!="/favicon.ico"){
        let path=url.parse(req.url,true);
        //配置响应头的编码格式
        res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
        //使用base64加密解密
        let encode= base64.encode(JSON.stringify(stuData));
        console.log(encode);//MTIzNDU=
        let str=base64.decode(encode);
       console.log(JSON.parse(str));
        //服务结束
        res.end();
    }
} 

getUserData.js

let stu=[
    {
        "name":"张三",
        "age":"20",
        "sex":"男"
    },
    {
        "name":"张三",
        "age":"20",
        "sex":"男"
    }
]
module.exports=stu;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值