nodejs学习笔记(二)

一、代码重定向

也就是完成页面的跳转

// 如何通过服务器让客户端重定向?
        //    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.')
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codernmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值