Node.js基础篇-01

Node.js的的优点: 1、可以快速获得可视化的结果 2、非常轻量级,几乎可以安装到各个平台 3、强大社区支持 Node.js的交互模式: Node.js的交互模式是 读取-求值-打印-循环 read-eval-print loop(REPL)模式,用图表示流程如下

Node.js模块系统

Node.js支持两种不同的模块系统,之前的方式是CommonJS module,通过module.exports去导出需要的元素或者方法。另一种是ECMAScript module,使用import和export搭配使用,不兼容CommonJS module形式。注意:使用ECMAScript module要记得在package.json中添加"type": "module",

创建一个最基本的web服务

1、引入http模块,创建服务 2、监听端口号,执行回调

javascript 复制代码
import {createServer} from 'http'

const server = createServer()

server.listen(6677, () => {
  console.log('服务已启动在5566端口');
})

扩展web服务

在创建服务时加上,request和response的回调处理

javascript 复制代码
import {createServer} from 'http'

const server = createServer((request, response) => {
  response.writeHead(200, { 'content-type': 'text/plain; charset=utf-8' })
  response.write('sugar ')
  response.end('high')
})

server.listen(6677, () => {
  console.log('服务已启动在5566端口');
})

request:客户端的请求 response:服务器的响应 HTTP头:writeHead的参数1:参数状态码、参数2:是一个键值对象,包括内容类型content-type,字符集。 创建响应:在HTTP的body内,通过write方法进行创建,当方法被调用,这个片段代码就会被执行被发送 write方法有两个需要注意的特点:1、不仅可以将字符串作为参数传递,也可以作为缓存对象传递 2、字符串编码,比如utf-8

常用命令

初始化Node.js

npm init -y

会创建一个package.json

package.json简介

name:包名 每个包名在npm上都是独一无二的,一般由小写字母与连字符 - 构成 version:描述包版本,通常结构是x.x.x 对应 major.minor.patch major:主版本号,不兼容的API修改时 minor:次版本号,向下兼容的功能性新增 patch:修订号,向下兼容的问题修复 main:表示包的入口文件 script:用于设置自定义脚本 keywords:用于检索的关键词 dependencies:依赖

模块的加载时机

  • CJS 支持动态加载模块 (require 语句可以出现在任意位置);
  • ESM 会在所有模块都加载完毕后才执行代码 (通常会将 import 导入语句放在模块的顶部);
    • ESM 是静态解析的,它会在编译时首先解析模块中的导入语句,虽然通常会将导入语句放在模块的顶部,但并不是要求所有的 import 语句必须在文件顶部,只要在使用导入的内容之前进行导入即可。

全局变量

global对象 常用global属性 1、process:进程相关控制 打印process.arvg会得到以下数组,包含启动 Node.js 进程时传递的命令行参数 参数1:Node在机器的位置 参数2:执行文件的绝对路径 process.env执行环境的环境变量 2、Buffer:处理二进制数据

相关推荐
初晴~37 分钟前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
盖世英雄酱5813642 分钟前
InnoDB 的页分裂和页合并
数据库·后端
滚雪球~1 小时前
npm error code ETIMEDOUT
前端·npm·node.js
沙漏无语1 小时前
npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
小_太_阳1 小时前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾1 小时前
scala借阅图书保存记录(三)
开发语言·后端·scala
星就前端叭2 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
m0_748234522 小时前
前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)
前端·webpack·node.js
噢,我明白了2 小时前
同源策略:为什么XMLHttpRequest不能跨域请求资源?
javascript·跨域
sanguine__3 小时前
APIs-day2
javascript·css·css3