利用Node快速搭建web服务器

700 阅读2分钟

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);