what

  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
  • Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
  • Node.js 的包管理器 npm,是全球最大的开源库生态系统。

什么是I/Oinput输入流 output输出流 正常下I/O的操作都是阻塞的(ajax同步)例:网络请求 数据库处理 文件的读写
优点

  • 高并发特别好
  • 不需要依赖第三方软件,可以基于API自己实现
  • 实现静态资源服务器
  • 路由处理
  • 动态网站
  • 模版引擎
  • get和post参数传参处理

why

  • 防止甩锅,明确数据交互的错误问题在谁
  • 能够书写api
  • 了解前后端交互流程
  • 全栈工程师

npm的常用命令

  1. //1.初始化包
  2. npm init
  3. yarn init
  4. //2.安装包
  5. npm install xxx --save
  6. yarn add xxx
  7. //3.移除包
  8. npm uninstall xxx
  9. yarn remove xxx
  10. //4.更新包
  11. npm update xxx
  12. yarn upgrade xxx
  13. //5.安装开发依赖的包
  14. npm install xxx --save-dev
  15. yarn add xxx --dev
  16. //6.全局安装
  17. npm install -g xxx
  18. yarn global add xxx
  19. //7.
  20. --save 生产环境
  21. --save-dev 开发环境
  22. //8.设置下载镜像的地址
  23. npm config set registry url
  24. yarn config set registry url
  25. //9.执行包
  26. npm run
  27. yarn run

模块/包与CommonJS

Node.js模块 基于CommonJS规范

  • 内置的 Node.js 模块
  • 第三方的 Node.js 模块
  • 自定义的Node.js 模块

    express

  • 托管静态文件

    • 可以指定虚拟目录
    • 可以指定多个目录作为静态资源目录
  • 实现静态资源服务 ```javascript const express = require(‘express’); const app = express();

let server = app.use(‘/abc’,express.static(‘public’)); //use方法的第一个参数可以指定一个虚拟路径 app.use(‘/nihao’,express.static(‘hello’)); server.listen(3000,() => { console.log(‘running…’); })

  1. **express基本使用**
  2. - 中间件
  3. - 中间件(Middleware)就是一个函数,它可以访问请求对象(req),响应对象(res)和web应用中处于请求 - 响应循环流程中的中间件,一般被命名为next的变量。
  4. - 参数处理
  5. - 模版引擎整合
  6. <a name="rN18W"></a>
  7. ## 路由
  8. 根据请求路径和请求方式进行路径分发处理<br />http的常用请求方式:post(添加),get(查询),put(更新),delete(删除)
  9. ```javascript
  10. const express = require('express');
  11. const app = express();
  12. //直接使用use分发可以处理所有的请求
  13. app.use((req,res) =>{
  14. console.log('ok');
  15. });
  16. app.listen(3000,() =>{
  17. console.log('running...');
  18. });
  1. const express = require('express');
  2. const app = express();
  3. //基本的路由处理
  4. app.get('/',(req,res) =>function(){
  5. res.send('get data');
  6. });
  7. app.post('/',(req,res) =>function(){
  8. res.send('post data');
  9. });
  10. app.put('/',(req,res) =>{
  11. res.send('put data');
  12. });
  13. app.delete('/',(req,res) =>{
  14. res.send('delete data');
  15. });
  16. app.listen(3000,() =>{
  17. console.log('running...');
  18. });