1.完整的写法
直接来看一段代码来简单了解如何通过Node创建web服务器
// 1.导入http模块
let http = require('http');
// 2.创建一个服务器实例对象
let server = http.createServer();
// 3.注册请求监听
server.on('request', (req, res) => {
// req的作用: 拿到浏览器发送请求传递过来的数据
// res的作用: 返回数据
// end方法的作用: 结束本次的请求并且返回数据
res.end('sandy');
})
// 4.指定监听的端口
server.listen(666);
先通过ctrl+shift+F10把服务跑起来请求一下,怎么请求?
这个服务器是不是运行在本地执行的,我们本地的服务器ip地址是不是127.0.0.1,然后我监听的端口号是666
所以我可以在浏览器打开127.0.0.1:666就可以了
还有一个问题没有说,当前我返回的数据是不是英文的,如果我返回的是中文会怎么样
// 1.导入http模块
let http = require('http');
// 2.创建一个服务器实例对象
let server = http.createServer();
// 3.注册请求监听
server.on('request', (req, res) => {
// req的作用: 拿到浏览器发送请求传递过来的数据
// res的作用: 返回数据
// end方法的作用: 结束本次的请求并且返回数据
res.end('仙蒂');
})
// 4.指定监听的端口
server.listen(666);
是不是就乱码了,为什么会乱码?
因为你返回中文,你并没有告诉浏览器要用什么编码方式来解析返回的内容
了解了原因,那下面就来配置一下
首先拿到res对象,里面有个writeHead的方法,通过这个方法就可以告诉浏览器,本地请求有没有成功,这里写一个200的状态码就表示请求成功,成功之后你还可以告诉它本次请求你返回的是什么类型的,返回的数据要用什么方式来解析
// 1.导入http模块
let http = require('http');
// 2.创建一个服务器实例对象
let server = http.createServer();
// 3.注册请求监听
server.on('request', (req, res) => {
// req的作用: 拿到浏览器发送请求传递过来的数据
// res的作用: 返回数据
// end方法的作用: 结束本次的请求并且返回数据
res.writeHead(200, {
"Content-Type": "text/plain;charset=utf-8"
})
// res.end('sandy');
res.end('仙蒂');
})
// 4.指定监听的端口
server.listen(666);
看看浏览器的执行结果
2.简写
let http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {
"Content-Type": "text/plain;charset=utf-8"
})
res.end('张明');
}).listen(999);