使用express快速创建一个中间服务器

我在写componer的过程中,希望提供一个本地服务器,用来实现preview功能,因此粗浅的学习了express的用法,并且发现它可能是最简单最好用的轻便服务器框架了。这篇文章就向入门级的同学介绍一下如何用express搭建自己的最简单的服务器。

搭建node环境

无论是windows还是*nix系统,都可以非常方便的安装node和npm。windows下只需要安装node官网提供的.exe执行文件,就可以把node和npm都安装好,Linux下一般还是需要编译安装才能保证使用自己想要的版本,npm也需要独立安装,npm一般可以通过apt, yum直接安装。

搭建最简单的服务器

当你有了node之后,你可以做的事太多了。而且你应该非常熟悉JavaScript,所以,用JavaScript实现以前php,Java们实现的一些功能吧。

创建一个目录作为项目目录,在里面创建一个index.js,内容如下:

var express = require('express')
var app = express()

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!')
})

编程的部分就完结了,接下来在命令行里面进入这个目录,运行下面命令:

npm install express
node index.js

这样服务器就搭建好了,使用浏览器访问localhost:3000就可以看到"Hello World!"的字样。

可以访问静态资源

上面的代码并不能让你的服务器提供静态文件服务,也就是说你的图片和脚本都没有办法通过浏览器访问。通过express的中间件可以轻松实现静态文件服务。

app.use(express.static('public'))

把上面这段代码加到app.listen之前。在项目目录下创建public目录,并且把静态文件都放进去,重新运行node index.js这个命令。于是,html、图片也可以访问了。

开始自己的服务端编程

上面的代码中,绿色字体部分就是对应的路由部分,你可以根据自己的需要,不断的添加新的url,在这个新的url返回不同的内容。

var fs = require("fs")
var cotnent = fs.readFileSync("a.txt")
app.get("/list", function(req, res) {
    res.send(content)
})

把服务器上的某个文件内容显示给用户。

express还提供post,put,delete等方法,对应restful api的method,因此,node服务器虽然性能上不能运行占用内存很大的程序,但是可以用来作为轻量级请求的中转服务器。而且npm有很多包,功能完善,能做很多梦寐以求的服务。例如在项目里面用npm安装YUI Compressor,在程序里require进来。通过post方法加载一个路由,当用户朝这个url发送js或css代码时,就把经过压缩后的代码返回给用户。

小结

当node作为中间服务器越来越流行,甚至取代传统服务器时,我们以前需要在Apache,nginx和其他服务端语言,比如php,中间折腾的日子就结束了。通过本文的例子,你可以非常明显的感觉到,对于express而言,它把服务器和程序完整结合在一起了。node本身不单单是服务器,它可以实现很多意想不到的功能,但是从最初的出发点而言,node就是想实现这样一个轻量级的服务器。通过简单几段代码就可以摆脱服务器配置等各种工作,不得不说node为前端开发人员带来了最大的便利,这样,我们也可以在服务端根据自己的需要写想要的服务了。

2017-01-18 |