Node+Express初探-1. 启动一个做不了什么事的服务器

附资料来源:

  • Express 4.x API 中文手册
  • Node.js v10.7.0 文档

1. 启动一个做不了什么事的服务器

前言:
说句废话:用Node启动一个服务器,其实就是在一台服务器上安装好Node环境并运行一个写着服务器代码的js文件。

Node

只用Node,代码应该这样写:

server.js

// server.js
const http = require('http');
const port = process.env.PORT || 8888

http.createServer(function (request, response) {
    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 发送响应数据 "Hello World"
    response.end('Hello World\n');
}).listen(port);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:'+ port +'/');

运行

直接在命令行中启动这个文件,比如:

node server.js

控制台显示:

***MacBook-Pro:firstexpress ***$ node server.js
Server running at http://127.0.0.1:8888/

这时就可以在浏览器中访问http://127.0.0.1:8888/,可以显示‘Hello World’就是启动成功了!

一些解释:

  1. http是Node内置的启动服务器的模块,直接引入就好。
  2. 在前端看到的那些响应头信息,比如status、Content-Type什么的,都不是自动生成的哦!这都需要后端同学一点点敲出来的!response.writeHead()方法就是做这个用的。
  3. 响应后要结束这个请求,使用response.end()

Express

如果需求如此简单,那么Express的代码就显得有点复杂了。

代码:

app.js

// app.js
const express = require('express')
const port = process.env.PORT || 8888
// 创建一个Express实例:
let app = express();
app.set('port', port)

app.all('/user', function (req, res) {
 res.status(200).type('text').send('This is a simple massage.\n')
});

var server = app.listen(app.get('port'), function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

同样的运行

node app.js

控制台的显示:

***MacBook-Pro:firstexpress ***$ node app.js
Example app listening at http://:::3000

访问localhost:3000或是http://127.0.0.1:3000/都可以。

一些解释:

  1. Express框架帮助我们封装了一些常用代码。在创建了一个Express实例之后,app.listen(port, callback)就可以启动服务器。
  2. app.set()是一个通用的设置函数。比如在这里我就用它来设置服务器所在的端口。
  3. 另一个好处是:Express允许res进行链式操作。res.status(200).type('text').send('This is a simple massage.\n')一句代码完成了三件事。
  4. app.all()是判断获取方法的重要API!当然这个all可以换成post/get/put/delete...
    懒得列举了看这里->app.METHOD(path,callback [,callback ...])

你可能感兴趣的:(Node+Express初探-1. 启动一个做不了什么事的服务器)