从零开始学习Express一 Hello Wolrd
新公司是做区块链开发的,框架主要用的Node.js、Express、React等。作者本人以前只是耳闻,没有实际使用过,但凭借多年浸淫软件界的经验(自吹一下,嘿嘿),并且对javascript非常熟悉,因此简单查了下资料并实际运行几遍代码后,基本可以入手了。但作为一个老程序员这是远远不够的,绝对不能满足于此,因此决定从头开始做一个简单的博客项目,以加强对以上技术的了解。
有了目标之后,开始准备环境,安装Node.js和npm的说明网上一大堆,这里就不在赘述了,请不会的同学自行百度。
作者的开发环境为Windows 7,下面开始正式进入学习过程
作者是边学边练,如有错误,请一定指正,感谢!!
1.创建一个目录myblog,你也可以用别的名字
2.进入myblog目录,执行以下命令
npm init
这个命令主要用来创建package.json文件,我的理解这是我们应用的主配置文件,主要用来配置应用名称、版本、入口文件、说明、作者、命令、依赖库等信息。
命令之后会有一系列输入要求,基本可以回车,只有两处我们改一下
entry point: (index.js) 这里用来指定入口文件,默认是index.js,我们改成app.js(输入app.js,回车)
test command: 这里用来指定测试启动命令,我们输入node app.js,然后回车
一直回车,直到出现Is this ok? (yes),我们确认无误,输入yes,回车
至此,我们已经成功创建了重要的配置文件package.json,可以在目录中看到,内容基本如下:
{ "name": "myblog", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "node app.js" }, "author": "wangxm", "license": "ISC", }
3.新建一个文件,命名为app.js,这个是我们应用的入口。
4.打开我们刚刚创建的app.js文件
引入express模块,这是我们主要的学习对象
var express = require('express');
创建一个应用实例
var app = express();
创建一个路由,路由就是用户访问时的网址,可以指定方法类型,get或post,因为我们要做一个网页,因此使用get
app.get('/', function(req, res, next) { res.send('hello world.'); });
req是请求对象
res是响应对象
好了,现在我们有了一个应用并且定义了一个指向根目录的路由,下面我们就来启动服务
app.listen(8080, function() { });
别忘了保存
5.现在我们回到myblog目录,试试启动我们的应用
npm test
如果一切正常,应该显示如下内容
> myblog@1.0.0 test E:\work\myblog
> node app.js
现在我们打开浏览器,输入http://localhost:8080,运行正常,页面输出hello world.
6.不对,好像没有运行起来,好吧,我们现在回到myblog目录,安装express模块
npm install express --save
--save参数是将模块安装到dependencies配置项下,是应用运行时需要的模块,发布时要安装
--save-dev参数是将模块安装到devDependencies配置项下,是辅助我们开发的模块,发布时可以忽略
安装完后,package.json内容如下:
{ "name": "myblog", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "node app.js" }, "author": "wangxm", "license": "ISC", "dependencies": { "express": "^4.15.4" } }
现在我们重新执行第5步操作,ok,这次真的运行成功。
7.这里是app.js完整内容,加了一些参数处理和404错误处理,大家可以体会下
//引入express模块 var express = require('express'); //创建应用实例 var app = express(); //创建路由 app.get('/', function(req, res, next) { //获取username参数 var name = req.query.name; //设置输出编码格式为utf-8,否则中文会乱码 res.setHeader("content-type", "text/html;charset=utf-8"); if (typeof(name) == "undefined") { res.end('您好,请用name参数告诉我您的名字!'); } else { res.end('Hello ' + name); } }); //启动应用,开启请求监听 var server = app.listen(8080, function() { }); //404处理 app.use(function(req, res, next) { res.send('404 - 没找到。'); });
好了,今天我们已经创建了一个应用,并且可以接受请求,处理404。后面我们会继续更深入的学习。