Nodejs 学习笔记

本文详细介绍了Node.js的学习笔记,包括JS三大组成部分、模块系统、NPM使用、Express框架以及ES6语法。重点讲解了Node.js的内置模块如http、fs、path和os,NPM的安装、管理和自定义脚本,以及Express的应用和会话技术。还涵盖了ES6的新特性如Set、Map和Promise。
摘要由CSDN通过智能技术生成

简介、安装、常用模块、留言板

JS三大组成部分:

ECMASCRIPT(声明JS变量、判断、循环等语法)

DOM(文档document)

BOM(window、location等)

模块(http服务器等)

· ECMAScript 语法:变量、判断、循环

· 内置核心模块: http服务,fs文件操作,url路径,path路径,os操作系统

· 第三方模块

·自定义模块:自己创建的js文件

CommonJS模块规范

· 一个文件就是一个模块

·通过exports和modul.export来到处模块中的成员(声明模块中哪些功能可以使用)

·通过require来加载模块(导出几个可以用几个)

自定义Node.js模块

语法
// 1.导出成员(声明模块、文件中哪些方法可以被外部使用)
// 写法1
exports.属性/方法名 = 功能
// 写法2
module.exports.属性/方法名 = 变量名

// 2.外部引入使用
var 对象 = require('路径及文件名');
对象.属性/方法名;

练习:

创建a.js和b.js 文件,在a.js 引入 b.js模块

b.js

// 1.定义
function b1() {
   
    console.log('我是b1');
}
function b2() {
   
    console.log('我是b2');
}
function b3() {
   
    console.log('我是b3');
}
function b4() {
   
    console.log('我是b4');
}
// 导出exports
exports.b1 = b1;
exports.b2 = b2;
exports.b3 = b3;
exports.b4 = b4;
// module.exports = exports

a.js

// 引入自定义模块
var b = require('./b'); // .js不用写

console.log(b);
b.b1();
b.b2();

内置Node.js模块

https://github.com/nodejs/node/tree/master/lib

模块系统

获取操作系统信息(os模块) (了解即可)

1.文档

OS | Node.js v14.17.3 Documentation (nodejs.org)

2.引入
var os = require("os");

路径处理(path模块)

1.文档

OS | Node.js v14.17.3 Documentation (nodejs.org)

2.引入
var path = require('path');
3.练习
// dirname 后去一层
// basename 取最后一层
var path = require('path');

var testData = 'E:/nodejs/add.htm';
console.log(path.basename(testData)); // add.htm
console.log(path.dirname(testData)); // E:/nodejs

网址处理(url模块)

1.文档
2. 引入
var url = require('url');
3.练习
var url = require('url');

var data = 'http://itcast.cn?name=小红&age=18';

console.log(data);
console.log(url.parse(data));

// 获取参数
var urlQueryObj = url.parse(data,true);
console.log(urlQueryObj.query); //{name: '小红',age: '18'}
console.log(urlQueryObj.query.name);
console.log(urlQueryObj.query.age);

文件系统(fs模块)

语法
// 引入对象
var fs = require('fs');

// 调用函数写数据入文件
fs.writeFile(路径及文件名,数据,function(err) {
   
             err 为null -- 写入成功
             err不为null -- 写入失败
             });
练习

通过write.js 文件创建a.txt 写入你好,中国

var fs = require('fs');

fs.writeFile('./a.txt', '你好,中国', function(err) {
   
    if(err) {
   
        console.log(err);
        return;
    }
    console.log('success');
})

通过read.js 文件来读取a.txt内容

var fs = require('fs');
// 1.
fs.readFile('a.txt',function(err,data) {
   
    if(err) {
   
        console.log(err);
        return;
    }
    console.log(data); // Buffer对象
    console.log(data.toString()); // Buffer.toString()转换为字符
})
// 2. 前期声明
fs.readFile('a.txt','utf8',function(err,data) {
   
    if(err) {
   
        console.log(err);
        return;
    }
    console.log(data);
})

构建http服务器(http模块)

练习
var http = require('http');
// 创建web服务器
var server = http.createServer();
// 监听请求
server.on('request',function(req,res) {
   
    console.log('收到用户请求,请求地址:' +req.url ); // 抓取请求地址
    // 有请求必须有响应,没有响应网页无法打开
    res.write('hello');
    res.end();
})
// 启动服务
server.listen(8080,function() {
   
    console.log('启动成功,访问 http://localhost:8080');
})

注意,用户通过浏览器访问html文件可能会发送n次请求,因为除html需要请求外,css、js、网站图标等也需要发送http请求。

当判断用户访问的页面,响应不同数据时

var http = require('http');
// 创建web服务器
var server = http.createServer();
// 监听请求
server.on('request',function(req,res) {
   
    console
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值