(1)Node.js笔记(基础部分)

1.初识node.js

我们可以借助node.js这个环境来进行后端开发
在我们可以这里插入图片描述
浏览器中的api在运行环境中可以被调用来辅助代码运行
在这里插入图片描述
在这里插入图片描述
以下为node.js运行环境,但没有DOM,BOM,AJAX等API
在这里插入图片描述
node.js的作用
在这里插入图片描述
node.js的学习路径
在这里插入图片描述

2.在终端里操作node.js

在终端里输出node.js的内容方法:“node 路径”,node后面有空格。

console.log('初识node.js')

tip:有时候在终端里cd不好使,就写成cd /d来强制换盘符
在这里插入图片描述
简便方法:在代码目录下按住shift右键选择“在此处打开powershell窗口”,就可以直接转到本目录下来进行操作。
在这里插入图片描述
终端快捷键:
在这里插入图片描述

3.fs文件系统模块

fs.readFile()使用方法:
tip:node的设计模式是错误先行,所以回调函数中第一个参数为err
readFile是包含三个参数的
参数一:必选,为路径
参数二:可选,为编码方式
参数三:必选,为回调函数

//导入fs模块,用定义的'fs'来接收
const fs = require('fs')
//调用fs.readFile()方法读取文件
fs.readFile('123.txt', 'utf8', function (err, datastr) {
    console.log(err);
    console.log("-------");
    console.log(datastr)
})

若成功:err为null,datastr为1.txt里的值
在这里插入图片描述
若失败:err的值为错误对象,datastr为undefined
在这里插入图片描述
fs.writeFile()使用方法:
readFile是包含四个参数的
参数一:必选,为路径
参数二:必选,为写入的内容(比readFile多了一个参数)
参数三:可选,为编码方式(默认为utf8)
参数四:必选,为回调函数

//导入fs模块,用定义的'fs'来接收
const fs = require('fs')
//调用fs.writeFile()方法读取文件
fs.writeFile('1.txt', 'abcd', 'utf8', function (err) {
    console.log(err);
})

若成功:err为null
在这里插入图片描述

若失败:err的值为错误对象
与readFile()基本一样
tip:改变路径来写入,它会自动创建,所以不容易报错
练习:
更改文本中的数据格式并在终端输出
txt数据:
在这里插入图片描述
更改为:
在这里插入图片描述

实现代码:

//导入fs模块,用定义的'fs'来接收
const fs = require('fs')
//读取文件
fs.readFile('1.txt', 'utf8', function (err, datastr) {
    if (err) {
        return console.log('wrong' + err.messgae);//判断读取文件是否成功
    }
    const arrNew = [];
    datastr.split(' ').forEach(item => {
        arrNew.push(item.replace('=', ':'))
    });
    const newStr = arrNew.join('\r\n')
    console.log(newStr)
})

fs常见问题的解决方法
1.路径动态拼接问题:

方法一:在这里插入图片描述
缺点:移植性很差,不利于维护

fs.readFile('G:\\desk\\js_day\\node.js\\1.txt', 'utf8', function (err, datastr){}
//完整的路径:从盘符开始,记得把单斜线改为双斜线(单斜线默认为转义字符,会出错)

方法二:“__dirname”(⭐推荐)(两个下划线)
使用方法,在路径里 __dirname+‘1.txt’

fs.readFile(__dirname + '1.txt', 'utf8', function (err, datastr) {}

tip:+号容易出问题,用path.join()最好用
__dirname:输出文件目录。

D:\web-practice\node\before

__filename:输出文件绝对路径,包含文件名。

D:\web-practice\node\before\global.js

4.路径模块

引入方法const path = require('path')
路径拼接:

fs.readFile(path.join(__dirname, '1.txt'), 'utf8', function (err, datastr) {}

得到路径的最后的文件:

const fpath = '/a/s/d/f/index.html';
console.log(path.basename(fpath, 'html'));//index

得到路径的最后的文件的拓展名:

console.log(path.basename(fpath));//html

5.http模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过ping+网址即可查看ip地址
在这里插入图片描述
DNS:ip与域名的转换的服务器
在这里插入图片描述
端口号80可以被省略
创建基本的web服务器4部曲
1.引入:

const http = require('http')

2.创建web服务器实例:

const server = http.createServer()

3.为服务器绑定request事件,监听客户端的请求on:

server.on('request', function (req, res) {
    console.log("Someone visit our web server.")
})
//其中req为请求对象,包含了与客户端相关的数据与属性:req.url,req.method
//其中res为请求对象,包含了与服务器相关的数据与属性:req.end()

4.启动服务器listen:

server.listen(80, function () {
    console.log('server running at http://127.0.0.1:80');
})

拓展:解决中文乱码问题

res.setHeader('Content-Type', 'text/html;charset=utf-8')
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值