Nodejs速成
Nodejs是一个js的运行环境
可以运行在服务器 作为web server
也可以运行在本地 作为打包 构建工具
Nodejs运行在服务端 而非浏览器环境 开发思路和前端不一样
nodejs 和 js对比
ECMAScript:定义了语法 NS 和 JS都要遵守的规则 什么变量啊循环啊balabala 都是语法上的东西
但不能操作DOM 也不能监听事件 也不能处理http
JS = ES语法规范+Web API
Nodejs=ES语法规范+nodejs API
commonjs:模块化规范
使用module.exports导出 使用require导入
lodash是一个引入的包 也可以通过它进行模块化
function add(a, b) { return a + b } function mul(a, b) { return a * b } module.exports = { add, mul }
const { add, mul } = require('./a') const _ = require('lodash') const sum = add(10, 20) const result = mul(100, 200) console.log(sum) console.log(result) const arr = _.concat([1, 2], 3) console.log('arr...', arr)
debugger:就是断点调试
const http = require('http')//自带的 const server = http.createServer((req, res) => { res.writeHead(200, {'content-type': 'text/html'}) res.end('<h1>hello world</h1>') }) server.listen(3000, () => { console.log('listening on 3000 port') })
server开发和前端开发有很大的区别:
服务稳定性:server可能遭受各种恶意攻击和误操作,而且单个客户端可以意外挂掉,可服务端不行。
考虑CPU和内存:客户端独占一个浏览器,不用考虑这些问题。可serve承载很多请求,CPU和内存都很稀缺(可以使用stream写日志 使用reids存seddion)
日志记录:前端也参与日志,但只是发起方,并不关心后续。可后端要记录日志、存储日志、分析日志
安全:server会接受各种恶意攻击,如越权操作、数据库攻击等
集群和服务拆分: