【nodejs 基础】

简介

Node.js 是一个开源和跨平台的 JavaScript 运行时环境。

Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使得 Node.js 的性能非常好。

Node.js 应用程序在单个进程中运行,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原语,以防止 JavaScript 代码阻塞,通常,Node.js 中的库是使用非阻塞范式编写的,使得阻塞行为成为异常而不是常态。

当 Node.js 执行 I/O 操作时(比如从网络读取、访问数据库或文件系统),Node.js 将在响应返回时恢复操作(而不是阻塞线程和浪费 CPU 周期等待)。

这允许 Node.js 使用单个服务器处理数千个并发连接,而​​不会引入管理线程并发(这可能是错误的重要来源)的负担。

Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发者现在无需学习完全不同的语言,就可以编写除客户端代码之外的服务器端代码。

在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为你不必等待所有用户更新他们的浏览器,你负责通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,你还可以通过运行带有标志的 Node.js 来启用特定的实验性功能。

下载

nodejs-中文网
在这里插入图片描述
nodejs官网
在这里插入图片描述

Linux安装配置

解压nodejs

解压缩下载后的node-v18.2.0-linux-x64.tar.xz文件
在这里插入图片描述
解压到主目录下的opt文件中并重命名为nodejs
在这里插入图片描述

配置nodejs

ctrl+h找到主目录下隐藏文件.bashrc文件
在这里插入图片描述
打开.bashrc文件最低端配置nodejs环境变量

export NODEJS_HOME=/home/lhz/opt/nodejs
export PATH=$PATH:$NODEJS_HOME/bin

在这里插入图片描述
终端测试
在这里插入图片描述

升级 npm

npm update npm
npm install cnpm -g
cnpm install yarn -g

在这里插入图片描述

Windows安装配置

下载解压nodejs

nodejs-中文网
在这里插入图片描述
解压到D盘的dev目录
在这里插入图片描述
并重命名为nodejs
在这里插入图片描述

配置nodejs

复制路径

D:\dev\nodejs

window+R在运行台中输入

sysdm.cpl

在这里插入图片描述
调出系统属性选择高级
在这里插入图片描述
选择环境变量
在这里插入图片描述
找到变量Path路径点击编辑
在这里插入图片描述
新建并粘贴复制的nodejs文件路径点击确定
在这里插入图片描述
测试nodejs
在这里插入图片描述

升级npm

在这里插入图片描述
在这里插入图片描述

模块化

app.js

// Es6 语法
import * as m02 from './m02.js'
import { slogan, love } from './m03.js'
import m04 from './m04.js'
console.log(m02.slogan);
m02.love();
console.log(slogan);
love();
console.log(m04.slogan);
m04.love();

app.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>模块化</title>
</head>
<body>
</body>
</html>
<script src="./src/js/app.js" type="module"></script>

在这里插入图片描述

初始化Nodejs项目

npm init --yes
{
  "name": "module",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
  • version 表明了当前的版本。
  • name 设置了应用程序/软件包的名称。
  • description 是应用程序/软件包的简短描述。
  • main 设置了应用程序的入口点。
  • private 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。
  • scripts 定义了一组可以运行的 node 脚本。
  • dependencies 设置了作为依赖安装的 npm 软件包的列表。
  • devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。
  • engines 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
  • browserslist 用于告知要支持哪些浏览器(及其版本)。

安装cowsay

npm i -g cowsay
npx cowsay -f kitty 你好

在这里插入图片描述
路径

file:///home/lhz/opt/nodejs/lib/node_modules/cowsay/cows

安装babel工具

npm i babel-cli babel-preset-env browserify -D	

编译(js为源文件夹 dist/js 为目标文件夹,会自动生成)

–presets=babel-preset-env /可以单独配置babel配置文件实现

npx babel src/js -d dist/js --presets=babel-preset-env	

browserify

app.js中 require 浏览器还是不识别,需要再次转换

npx browserify dist/js/app.js -o dist/bundle.js	

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>bundle</title>
</head>

<body>

</body>

</html>
<script src="./dist/bundle.js"></script>

在这里插入图片描述

引入npm模块

npm i jquery

jQuery.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jquery</title>
</head>

<body>

</body>

</html>
<script src="./node_modules/jquery/dist/jquery.min.js"></script>
<script>
    $(function(e) {
        $('body').css('background', '#ff00ff');
    });
</script>

在这里插入图片描述

Nodejs模块化

m05.js

const slogan = '桃李不言下自成蹊';
const love = () => {
        return '我爱你中国 亲爱的母亲';
    }
module.exports = {
    slogan: slogan,
    love: love
}

r05.js

const m05 = require('./src/js/m05')
console.log(m05.slogan);
console.log(m05.love());

vscode中安装Code Runner
在这里插入图片描述
点击右上角三角运行
在这里插入图片描述
m06.js

console.log(module);

模块信息
在这里插入图片描述
m07.js

exports.name = '张三';

r07.js

const m07 = require('./src/js/m07')
console.log(m07);
console.log(m07.name);

在这里插入图片描述
m08.js

// 同步执行
console.log('桃李不言');
// let time = new Date().getTime();
// while (new Date().getTime() - time < 6000) {

// }
// 异步执行
let nums = 0;
let time = setInterval(() => {
    nums++;
    if (nums == 6) {
        clearInterval(time);
        console.log('我爱你中国 亲爱的母亲');
    }
}, 1000);

m09.js

console.log('下自成蹊');

r08.js

const m08 = require('./src/js/m08')
const m09 = require('./src/js/m09')

在这里插入图片描述

Nodejs创建HTTP服务

mkdir httpServer
cd httpServer
npm init --yes

新建文件node.js

// 引入http模块
const http = require('http');

// 使用http模块创建httpServer
const server = http.createServer();

// 处理HTTP请求
server.on('request', function(request, response) {
    // 设置响应头
    response.writeHead(200, { 'Content-type': 'text/html;charset=utf-8' });
    // 给客户端发送字符串
    response.write('<h3>我爱你中国<h3>');
    // 结束响应 (关闭输出流)
    response.end();
});

// 端口监听 (启动的服务)
server.listen(6633, function() {
    console.log('服务已启动,请访问http://127.0.0.1:6633');
});

在这里插入图片描述


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rita_zzf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值