Node.js 写一个简单的静态服务器 1

为了学习Node.js 开始做一个简单的小项目,静态服务器。

我们先在码云上新建一个项目,然后再克隆到本地。

然后呢,我们开始来写代码啦。

静态服务器,本质上,就是 HTTP 的请求与响应,客服端发送 HTTP 请求,服务端传一个HTTP 响应。

而这中间,需要我们来先了解 http 模块。

这是官方文档中http 模块部分 http://nodejs.cn/api/http.html

然后,可以看一下这个 https://nodejs.org/en/docs/guides/getting-started-guide/ (简单的web server,代码如下)

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

上面的代码,使用 http 模块的 createServer 创建了一个 http 服务器,然后传入的参数是一个函数,如下,这个函数会自动添加到 ‘request’ 事件。而res 和 req 都是流对象,而 res 是可写的流,因此可以用res.write() 和 res.end() 往流中写入内容。(可以先write() 多次最后 end() )。设置好了server,就可以监听地址和端口号,等着客户端发送请求。

好啦,下面我们自己试一下。

在项目根目录下的 src 下新建文件 app.js , 再在 src 下新建目录config ,在config 下新建文件 defaultConfig.js 。

defaultConfig.js 如下(也可以把 127.0.0.1 换成 localhost)

module.exports = {
  hostname: '127.0.0.1',
  port: 9527
}

然后,写app.js 如下

const http = require('http');
const conf = require('./config/defaultConfig');

const server = http.createServer((req,res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end("Hello World!");
});

server.listen(conf.port, conf.hostname, () => {
  const addr = `http://${conf.hostname}:${conf.port}`;
  console.log(`Server started at ${addr}`);
})

node 运行一下代码,就可以在浏览器访问了。

然后,我们再改一下 app.js ,如下。让它返回一个简单的html。注意 setHeader 中的值要变化。

const http = require('http');
const conf = require('./config/defaultConfig');

const server = http.createServer((req,res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.write('<html>');
  res.write('<body>');
  res.write("Hello World!");
  res.write('</body>');
  res.end('</html>');
});

server.listen(conf.port, conf.hostname, () => {
  const addr = `http://${conf.hostname}:${conf.port}`;
  console.log(`Server started at ${addr}`);
})

然后,我们下载一个工具 supervisor ,它能够监听我们文件的变化然后自动重启服务器.

呃,前面忘了初始化项目了,因此项目里没有package.json.

现在,我们初始化项目,然后再下载第三方工具。

npm init

npm install

npm install supervisor -g

supervisor app.js

猜你喜欢

转载自blog.csdn.net/purple_lumpy/article/details/89342781