Node.js加载模块与响应内容类型

1.require是一个方法,他的作用是用来加载模块的

一般用法:

1)加载文件模块并执行里面的代码

2)拿到被加载的模块导出的接口对象

2.Node.js的模块有三种

1)具名的核心模块

2)用户自己编写的文件模块

3)第三方模块

引用文件的主文件


console.log('下面演示加载a.js文件')
let getExport=require('./a')
console.log('结束演示')

被引用的文件

console.log('a.js文件被调用')

3.由于在Node中没有全局作用域,只有块级作用域,所以外部访问不到内部,同样内部也无法访问外部,但是有的时候是为了跨文件获取其他文件中的数据,这时我们就需要使用require的另一个作用了,使用exports对象中的成员来传递数据

引用文件的主文件

console.log('下面演示加载a.js文件')
let getExport=require('./a')
console.log('结束演示')
console.log(getExport.dream)

被引用的文件

console.log('a.js文件被调用')
let dream='12周像乔丹一样飞'
exports.dream='打理工杯'

4.ip地址与端口号的简单补充

1)ip地址用来定位计算机

2)端口号用来定位具体的应用程序

3)一切需要互联网通信的软件都会占用一个端口号

4)端口号的范围是0~65536

5)在计算机中有一些默认端口号最好不要去使用,比如http服务的80

6)我们可以同时开启多个服务,但是一定要确保不同服务占用的端口号不一致才可以,在一台计算机中,同一个端口号同一时间只能被一个程序占用

5.解决从服务器发送中文乱码问题

在服务端默认发送的数据其实是utf-8编码的内容,但是浏览器不知道你是utf-8编码的内容,就会按照当前操作系统的默认编码去解析,比如中文的操作系统默认就是gbk,解决方法就是告诉浏览器发送的内容的编码,而在http协议中,Content-type就是用来告诉对方我给你发送的数据内容是什么类型

使用response.setHeader('Content-Type','text/plain;charset=utf-8')语句来指定编码

let http=require('http')
let server=http.createServer()
server.on('request',function(request,response){
    console.log('收到客户端的请求了,请求路径是:'+request.url)
    let url=request.url
    if(url==='/'){
    {
        response.setHeader('Content-Type','text/plain;charset=utf-8')
        response.end('我是主页')
    }
})
server.listen(3333,function(){
    console.log('服务器启动成功了,可以通过http://127.0.0.1:3333/来进行访问')
})

6.后台向前端发送文件与图片

如果发送的是文件,那么需要先读取文件中的内容,然后设置编码格式类型,如果发送的是图片等,同样需要设置编码类型。

let fs=require('fs')
let http=require('http')
let server=http.createServer()
server.on('request',function(request,response){
    fs.readFile('./despair.jpg',function(error,data){
        response.setHeader('Content-Type','image/jpeg')
        response.end(data)
    })
})
server.listen(3333,function(){
    console.log('服务器启动成功了,可以通过http://127.0.0.1:3333/来进行访问')
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值