nodejs基础知识整理

学习nodejs的意义?

  1. 了解浏览器端和服务器端的交互过程 可以缩短开发周期
  2. 出现bug 可以快速定位是前端问题还是后端问题
  3. nodejs和其它后端语言拥有一样的功能 可以做数据库的增删改善 爬虫 读写文件…

什么是nodejs?

Node.js 是一个开源与跨平台的 JavaScript 运行时环境。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 v8解析js是最快的
nodejs里面的API大多数都是异步

优缺点

优点: Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,异步编程,使其轻量又高效。
缺点: 单进程,单线程,只支持单核cpu,不能充分的利用多核cpu服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

服务器端的js和浏览器端的js有什么区别?

客户端的js三个组成部分 :

  1. DOM 文档对象模型 js操作网页内容的一套API
  2. BOM 浏览器对象模型 js操作浏览器页面的一套API
  3. ECMAScript 一套js语法的规范

服务端的js: 只有ECMAScript 独立于浏览器运行的

nodejs的执行方法

  1. 打开命令框(CMD)
  2. 输入 node 回车
  3. 输入js代码 按回车执行
  4. 退出node环境 使用后ctrl + c (按两次)
var age = 49;
var gender = "男";

console.log(age, gender);

function sum(m, n) {
    console.log(m+n);
}
sum(5, 9);

读取文件

导入模块 require(“模块名”) 模块名是nodejs内部规定死的 不能动
左边保存的变量可以修改 但是通常情况下和模块名保持一致

参数:
参数1 : 需要被读取的文件的路径
参数2 : 可选参数 我们这里给的是编码格式
参数3 : 回调函数 里面有连个参数 err 表示读取失败时返回的信息 data是读取到的文件信息

const fs = require('fs');

fs.readFile("./novels/01.txt","utf-8",  (err, data) => {
    // console.log(err);
    // console.log(data);
    

    if(!err) {
        console.log(data);
    }  else {
        console.log("文件读取失败");
        
    }
})

console.log("底部的代码");

写入文件

文件写入方法:writeFile()
fs.writeFile(‘文件路径’,‘要写入的内容’,[‘编码’],‘回调函数’);
参数:
参数1 : 存入信息或者数据的文件路径
参数2 : 需要写入的数据
参数3 : 回调函数

// 导入fs模块
const fs = require("fs");
fs.writeFile("./novels/03.txt", "如果有人钟爱着一朵独一无二的盛开在浩瀚星海里的花。", err => {
    // console.log(err);

    if(!err) {
        console.log('写入成功');
        
    } else {
        console.log("写入失败");
        
    }
    
})

console.log("底部的代码");

http的基本使用

// 一个简单的HTTP服务

// 加载http模块
var http = require('http');

// 创建一个http服务
var server = http.createServer();

// 监听用户的请求事件 (request事件)
// request对象包含了用户请求报文中的所有内容, 通过request对象可以获取所有用户提交过来的数据
// response对象用来向用户响应一些数据, 当服务器要向客户端响应数据的时候, 必须使用response对象
server.on('request', function(request, response) {

    // 解决中文乱码问题, 服务器通过设置响应报文头, 告诉浏览器用什么样的编码来解析数据
    response.setHeader('Content-Type', 'text/plain; charset=utf-8');

    // 获取请求路径
    var url = request.url;
    console.log(url);

    // 向客户端做出响应
    response.write('Hello,World! 你好世界');
    // 对于每一个请求, 服务器必须结束响应, 否则浏览器会一直等待服务器响应结束
    response.end();
    
});

// 启动服务
// 7777: 自己设置的端口号
server.listen(7777, function() {
    console.log('服务器已启动');
});

// 浏览器输入 localhost:7777 即可访问

路径

nodejs的路径问题

nodejs里面的相对路径 是相对于当前运行node命令的终端所处的相对路径
为了保证在任何地方打开终端 都可以运行 那么我们的路径使用绝对路径

问题 : 万一文件夹存在其他地方 绝对路径也不可靠
解决方法: __dirname

__dirname:是当前文件所在的文件的绝对路径
__filename:是当前文件的绝对路径

const fs = require("fs");

fs.readFile(__dirname + "\\novels\\01.txt", "utf-8", (err, data) => {
    console.log(data);
})

console.log(__dirname + "\\novels\\01.txt");
console.log(__filename);
nodejs的路径模块
// 导入模块
const path = require("path");
const fs = require("fs");

const pathName = path.join("name", "info", "assets", "index.html");

console.log(pathName);

// 在使用到路径的地方  使用绝对路径
const txtPath = path.join(__dirname, "novels", "01.txt");
console.log(txtPath);

// 读取文件
fs.readFile(txtPath, "utf-8", (err, data) => {
    if(!err) {
        console.log(data);
    } else {
        console.log(err);
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值