目录
一、代码重定向
也就是完成页面的跳转
// 如何通过服务器让客户端重定向?
// 1. 状态码设置为 302 临时重定向
// statusCode
// 2. 在响应头中通过 Location 告诉客户端往哪儿重定向
// setHeader
// 如果客户端发现收到服务器的响应的状态码是 302 就会自动去响应头中找 Location ,然后对该地址发起新的请求
// 所以你就能看到客户端自动跳转了
res.statusCode = 302
res.setHeader('Location', '/')
注意:
// 状态码301重定向 永久重定向 会导致下次还是会记住
// 状态码302重定向 不会导致下次记住
二、服务端渲染和客户端渲染的区别
- 客户端渲染不利于 SEO 搜索引擎优化
- 服务端渲染是可以被爬虫抓取到的,客户端异步渲染是很难被爬虫抓取到的
- 所以你会发现真正的网站既不是纯异步也不是纯服务端渲染出来的
- 而是两者结合来做的
- 例如京东的商品列表就采用的是服务端渲染,目的了为了 SEO 搜索引擎优化
- 而它的商品评论列表为了用户体验,而且也不需要 SEO 优化,所以采用是客户端渲染
三、export和module.exports的区别
// node 内置导出 也就是说默认导出 是用module.export
// 其实export 和module.export 原本上两者相等,如果发生改变(赋值)
// 就不等了,最终导出的是module.export
// 注意 后边覆盖前边的,只会导出最后一个
// module.exports = add
// 直接导出某个成员
// 使用module.exports单一导出,后者会覆盖前者
//一定要记住,最后 return 的是 module.exports
四、03-require模块加载规则、require方法加载顺序
// 优先从缓存加载,也就是说如果有一个main.js
// 开始加载了b文件的一个函数
// 然后导入a文件,a文件又加载了b文件的这个函数
// 那么他会从缓存中读取,不会重新加载文件
// require方法加载顺序
// 先在当前文件所处目录找node_nodules
// 找不到会向上级目录找直到磁盘根目录,才会结束
// node_moules/模块名
// node_moules/模块名/package.json
// 接着找json中的main.js,一般main.js中记录了入口模块
// 然后使用这个包
// 注意项目中有且只有一个node_nodules
五、npm
// npm 就是 node package manager
// --save 就是保存package.json 信息
// package.json 可以通过 npm init 的方式初始化来
// 相当于产品说明书 npm init -y 快速安装
// dependencies属性,用来保存项目的第三方包依赖项信息
// 所以建议每个项目都要有且只有
// npm uninstall --save 删除包的同时删除依赖信息
// 安装淘宝镜像 npm install --global cnpm
// 查看npm配置 npm config list
六、Express框架
//引入包
var express = require('express')
// 2. 创建你服务器应用程序
// 也就是原来的 http.createServer
var app = express()
// 在 Express 中开放资源就是一个 API
// 公开指定目录
// 只要这样做了,你就可以直接通过 /public/xx 的方式访问 public 目录中的所有资源了
app.use('/public/', express.static('./public/'))
app.use('/static/', express.static('./static/'))
app.use('/node_modules/', express.static('./node_modules/'))
// 模板引擎,在 Express 也是一个 API
// 得到路径
// 一个一个的判断
app.get('/about', function(req, res) {
// 在 Express 中可以直接 req.query 来获取查询字符串参数
console.log(req.query)
res.send('你好,我是 Express!')
})
app.get('/pinglun', function(req, res) {
// req.query
// 在 Express 中使用模板引擎有更好的方式:res.render('文件名, {模板对象})
// 可以自己尝试去看 art-template 官方文档:如何让 art-template 结合 Express 来使用
})
// 当服务器收到 get 请求 / 的时候,执行回调处理函数
app.get('/', function(req, res) {
res.send('hello')
})
// 相当于 server.listen
app.listen(3000, function() {
console.log('app is running at port 3000.')
})