JS 裡 有DOM , BOM 和 EMMAscript 可是在NodeJS裡是沒有DOM和BOM的

如何在NodeJS裡定義一個全局變量

global.name = 'index.js'

使用的時候就從global調用

console.log(global.name) //index.js

在遊覽器用,定義後可以用window來調用

window.name

由於如果一個庫在遊覽器和NodeJS的環境都會用到,那就麻煩了,
所以EMMAscript近年更新了一個NodeJS與遊覽器通用的寫法。

globalThis.name = 'index.js'
console.log(globalThis.name) //index.js

Node內置了兩個全局變量

dirname

console.log(__dirname)

filename

console.log(__filename)

Buffer

process

consolle.log(process.argv)
console.log(process.cwd())

CSR,SSR,SEO

在NodeJS是無法空值DOM和BOM,但是可以通過第三方庫來實現。

比如說

npm i jsdom
const {JS} = require('jsdom')
const root = new JSDOM('<!DOCTYPE HTML><html><head></head><body>
	<div id='app'></div>
</body></html>)

const window = root.window
const document = window.document

這樣就可以操作html,這種從服務器渲染就叫SSR,服務端渲染

CSR則是從用戶端渲染

SSR因為已經渲染好了,所以對爬蟲機器人更加友好因此SEO相對友好

PATH模塊

path.basename

返回給定路徑的最後一部分。

console.log(path.basename('/foo/bar/baz/asdf/xm.html')
// xm.html

window兼容POSIX協議,所以可以使用正斜杠/ ,但是POSIX並不能識別反斜杠

path.dirname

console.log(path.basename('/foo/bar/baz/asdf/xm.html')
// F:\project\node\foo\bar\baz\asdf

返回除了basename的絕對路徑。

path.extname

console.log(path.basename('/foo/bar/baz/asdf/xm.html')
// .html

返回後綴格式。如果沒有. 返回空值,如果有多個. 返回最後一個。

path.join

console.log(path.join('/a','/b','/c','../'))

拼接路徑。

path.resolve

path.join一樣,可是返回絕對路徑

console.log(path.resolve('./index.js')
// F:\project\node\index.js
console.log(path.resolve(__dirname, './index.js'))

path.parse

把路徑解析成對象

console.log(path.parse('/home/user/dir/file.txt'))
// {
	root: './',
	dir: '/home/user/dir',
	base: 'file.txt',
	ext: '.txt',
	name: 'file'
}

path.format

path.format(
	{
		root: './',
		dir: '/home/user/dir',
		base: 'file.txt',
		ext: '.txt',
		name: 'file'
	}
) 
// /home/user/dir/file.txt 

path.sep

console.log(path.sep)
// window 下會輸出 \
// POSIX 下輸出 /

OS模塊

os.platform

獲取電腦系統的平台

console.log(os.platform())
// win32

os.release

獲取電腦系統的版本號

console.log(os.release())
// 10.0.22521

os.type

console.log(os.type())
// Window NT

os.version

console.log(os.versioin())
// Window 10 Pro 

os.homedir

獲取用戶的目錄

os.arch

console.log(os.arch())

os.cpus

獲取cpu相關

os.networkInterfaces

獲取網絡信息