用nodejs创建一个服务器,接收前端发过来的请求,然后处理请求,返回数据。

创建方法(原生)

推荐使用express框架创建,见下

1、引入模块

js文件引入模块

  1. var http = require("http");
  2. //或
  3. var https = require("https");
  4. //按实际情况引用

2、创建服务器

服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
image.png
或者

  1. //创建一个http服务器,监听8888端口,默认80
  2. http.createServer(function (request, response) {
  3. // 发送 HTTP 头部
  4. // HTTP 状态值: 200 : OK
  5. // 内容类型: text/plain
  6. response.writeHead(200, {'Content-Type': 'text/plain'});
  7. // 发送响应数据 "Hello World"
  8. response.end('Hello World\n');
  9. }).listen(8888);
  10. // 终端打印如下信息
  11. console.log('Server running at http://127.0.0.1:8888/');

Nodejs-03 创建服务器 - 图2
接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
image.png

异步

image.png

Express 框架

  1. npm install express --save

安装和使用

一、安装脚手架工具

express 中提供了一个脚手架工具:express-generator。
在终端任意路径中执行以下命令,全局安装脚手架工具:

  1. npm i express-generator -g

二、创建项目

在终端中将路径定位到需要创建项目的目录中,然后执行以下命令创建 express 项目:

  1. express 项目根目录名称

三、下载项目依赖包

项目创建成功后,在终端中进入项目根目录,然后执行以下命令,下载项目所有依赖包:

  1. npm i

四、启动项目

在终端中定位到项目根目录,然后执行以下命令启动项目:

  1. npm start

启动成功后,打开浏览器,访问 http://localhost:3000/,能看到以下欢迎界面,就表示项目创建并启动成功了。
Nodejs-03 创建服务器 - 图5

五、全局安装 nodemon

在终端中任意路径执行以下命令安装全局 nodemon:

  1. npm i nodemon -g

找到package.json 文件,添加一个启动命令:

  1. {
  2. "scripts": {
  3. "start": "node ./bin/www",
  4. "dev": "nodemon ./bin/www"
  5. },
  6. }

配置完成后,我们的项目就有了两个启动命令:

  • npm start:不会自动重启,代码修改后需要手动关闭服务器再重启;
  • npm run dev:当代码每次被保存时,服务器都会自动重启;

    路由

    Nodejs-03 创建服务器 - 图6
    image.png
    image.png
    image.png

image.png
image.png
image.png

Egg 框架

Egg 继承于 Koa,Koa 又是由 Express 幕后的原班人马打造

截获请求

get 请求

Nodejs-03 创建服务器 - 图13

  1. let express = require("express") //引入express模块
  2. let app = express() //创建express实例
  3. app.get('/',(req,res)=>{ //捕获get方法,通过回调函数返回浏览器的请求体reg,和服务器将要返回的结果res
  4. res.set('Access-Control-Allow-Origin','*') //服务器要返回的结果,要设置header跨域,否则发送请求的浏览器会报错
  5. res.send('hello world!!!!!') //服务器返回结果给用户的浏览器
  6. })
  7. app.listen(8888,()=>{ //监听端口,并且可以运行一次回调函数
  8. console.log("服务启动成功");
  9. })