1、什么是nodeJS
NodeJS一个基于chrome的V8引擎的JAVascript的运行环境,NodeJS使用了一个事件驱动以及非阻塞式的I/O式模型
NodeJS的NPM是全球最大的包管理网站
V8引擎:
内核 脚本引擎 渲染引擎
I/O: input output
什么是npm?
1、包管理器
2、是一个命令
3、是一个网站
npm常用的命令
npm install
npm install <包名> -S 生产环境中的依赖
npm install <包名> -D 开发环境中的依赖
npm install <包名> -g 全局安装
npm remove <包名> 删除
npm update <包名> 升级
yarn包管理网站
yarn init
yarn add <包名> 等价于 npm install <包名> -S 生产环境中的依赖
yarn add <包名> -D 等价于 npm install <包名> -D 开发环境中的依赖
yarn upgrade [package]
yarn remove [package]
yarn install
2、NodeJS与JavaScript有什么区别
1、原生JS运行js文件的时候需要依赖于浏览器
2、nodeJS运行文件的时候服务 终端
3、原生JS的东西会有兼容性。Node中不会有兼容性
4、本地文件读写 服务器创建 连接数据库(原生JS无法做到的) nodeJS都可以做到
.....
3、nodeJS能做什么?Node的优点和缺点
文件的读写 服务器的创建 连接数据库等等....
优点:做项目中做中间层的使用
缺点:不适合大量的计算
4、模块化
requrieJS modules seaJS commonJS
AMD规范 modules CMD规范 commonJS
AMD规范:依赖前置
CMD规范:依赖就近
规范:
一个模块的导入和导出
import export default export
commonJS: require module.exports
5、路由
路由:根据用户请求的路径返回不同的页面或者数据
前端路由:前端路由主要应用在单页面开发,前端路由用户请求的路径发生改变的时候不会经过后端的,
主要的原理是通过onhashchange 或者是history.js进行页面的切换。前端路由主要是用来做数据渲染
后端路由:根据用户请求的路径返回不同的页面或者数据
http://localhost:3000/goods/addgoods
http://m.3songshu.com /mobile/api/cart/getSelectNum
6、get传递的参数在node中通过query进行接收
5-1、supervisor
cnpm install supervisor -g
面试题:
1、传统的DOM渲染方式?
2、什么是模块化?模块化的好处
3、application/x-www-form-urlencode
4、关于报文 相关文档读 3篇
5、当输入www.baidu.com的时候按下回车会发生什么事情?
作业:
利用路由写一个登陆注册 要求模拟真实的场景 数据存储在本地文件(文件的读写)
Node路由:
1、要求引入一个js文件 弹出1
2、引入一个css文件
3、引入10张图片
4、引入写一个选项卡
const http = require(“http”);
const fs = require(“fs”);
let server = http.createServer((req,res)=>{
console.log(req.url);
console.log(req.method);
console.log(req.headers);
fs.readFile("./index.html",(err,data)=>{
res.writeHead(200,{'content-type':'text/html;charset=utf8'});
res.end(data)
})
// res.statusCode = 200;
// res.setHeader("content-type","text/plain")
// res.write('123');
// res.end('你好');
})
http.js
/*
req:request 请求
常用的属性
req.url 请求地址
req.method 请求方式
req.headers 请求头
ajax({
type:
data:
url:
headers:{
content-type:""
},
success:
})
常见的请求头中的类型
1、application/json
2、application/x-www-form-urlencode 数据序列化
key=val&key=val
res:response 响应
常用的属性
res.write 响应 多次
res.end 结束的响应 一次
res.writeHead() 设置响应头与状态码 (下面2个的综合写法)
res.statusCode 设置状态码
res.setHeader() 设置响应头
响应头中content-type常用的类型有哪些?
1、文本类型 text/plain
2、html类型 text/html
3、css类型 text/css
4、js类型 application/x-javascript
5、json类型 application/json
6、图片类型 image/png image/jpg .....
*/
server.listen(9088)