【一】认识Node.js

1.介绍

Node.js是一个javascript运行环境。它让javascript可以开发后端程序,实现几乎其他后端语言实现的所有功能

Nodejs是基于V8引擎,V8是Google发布的开源JavaScript引擎,本身就是用于Chrome浏览器的js解释部分

Nodejs遵循CommonJS规范

2.nodejs的特性

  • Nodejs语法完全是js语法

  • NodeJs超强的高并发能力,实现高性能服务器

3.浏览器环境vs node环境

4.Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API

如:

  • 文件的读写 (File System)

const fs = require('fs')

fs.readFile('./ajax.png', 'utf-8', (err, content) => {
  console.log(content)
})
  • 进程的管理 (Process)

function main(argv) {
  console.log(argv)
}

main(process.argv.slice(2))
  • 网络通信 (HTTP/HTTPS)

const http = require("http")

//创建服务器
http.createServer((req,res) => {
  // req 接收浏览器传递的参数
  // res 返回渲染内容

  // 设置响应头,同时可以设置状态码和状态信息。 必须先设置响应头,才能设置响应。
  res.writeHead(200, {
    "Content-Type":"application/json;charset=utf-8",
    "access-control-allow-origin":"*"
  })
  

  // res.statusCode: 响应的的状态码 200 404 500
  // res.statusMessage: 响应的状态信息, OK Not Found ,会根据statusCode自动设置。

  // 给浏览器的响应正文
  res.write("hello nodejs")

  // 给浏览器的响应正文,需配置响应头
  res.write(`
    <html>
       <h1>hello world1</h1>
       <h1>你好 世界!</h1>
    </html>
  `)

  // 结束请求,并且响应一段内容, end下面不可再写write
  res.end('[1,2,3]')

}).listen(3000,()=>{
    // 启动成功执行
    console.log('端口启动成功')
})

5.modules模块化规范

把公共的功能 抽离成为一个单独的 js 文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。

m1.js:

const name = 'huzi'

const sayName = () => {
  console.log(name)
}

// 接口暴露方法一:
module.exports = {
  say: sayName
}

// 接口暴露方法二:
exports.say = sayName

main.js:

const m1 = require('./m1')
m1.say()

6.模块化的好处

模块化之前使用对象和闭包 可以解决全局污染的问题

  • 可维护性。 因为模块是独立的,一个设计良好的模块会让外面的代码对自己的依赖越少越好,这样自己就可以独立去更新和改进。

  • 命名空间。 在 JavaScript 里面,如果一个变量在最顶级的函数之外声明,它就直接变成全局可用。因此,常常不小心出现命名冲突的情况。使用模块化开发来封装变量,可以避免污染全局环境。

  • 重用代码。 我们有时候会喜欢从之前写过的项目中拷贝代码到新的项目,这没有问题,但是更好的方法是,通过模块引用的方式,来避免重复的代码库。我们可以在更新了模块之后,让引用了该模块的所有项目都同步更新,还能指定版本号,避免 API 变更带来的麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不叫虎子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值